Browse Source

Remove unneeded files in chapter 6, and fix href' in chapter 7

git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/cross2@11901 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
Pierre Labastie 5 years ago
parent
commit
22422a8a13
49 changed files with 26 additions and 3108 deletions
  1. 0 156
      chapter06/binutils-pass1.xml
  2. 0 82
      chapter06/bison.xml
  3. 0 112
      chapter06/bzip2.xml
  4. 0 65
      chapter06/chroot.xml
  5. 0 204
      chapter06/createfiles.xml
  6. 0 59
      chapter06/creatingdirs.xml
  7. 0 96
      chapter06/dejagnu.xml
  8. 0 139
      chapter06/expect.xml
  9. 0 88
      chapter06/flex.xml
  10. 0 208
      chapter06/gcc-pass1.xml
  11. 0 120
      chapter06/generalinstructions.xml
  12. 0 85
      chapter06/gettext.xml
  13. 0 230
      chapter06/glibc.xml
  14. 0 115
      chapter06/kernfs.xml
  15. 0 114
      chapter06/libstdc++-pass2.xml
  16. 0 122
      chapter06/libstdc++.xml
  17. 0 207
      chapter06/linux-headers.xml
  18. 0 79
      chapter06/perl.xml
  19. 0 88
      chapter06/python.xml
  20. 0 191
      chapter06/tcl.xml
  21. 0 74
      chapter06/texinfo.xml
  22. 0 335
      chapter06/toolchaintechnotes.xml
  23. 0 113
      chapter06/util-linux.xml
  24. 1 1
      chapter07/bash.xml
  25. 1 1
      chapter07/binutils-pass1.xml
  26. 1 1
      chapter07/binutils-pass2.xml
  27. 1 1
      chapter07/bison.xml
  28. 1 1
      chapter07/bzip2.xml
  29. 1 1
      chapter07/coreutils.xml
  30. 1 1
      chapter07/diffutils.xml
  31. 1 1
      chapter07/file.xml
  32. 1 1
      chapter07/findutils.xml
  33. 1 1
      chapter07/flex.xml
  34. 1 1
      chapter07/gawk.xml
  35. 1 1
      chapter07/gcc-pass1.xml
  36. 1 1
      chapter07/gcc-pass2.xml
  37. 1 1
      chapter07/gettext.xml
  38. 1 1
      chapter07/glibc.xml
  39. 1 1
      chapter07/grep.xml
  40. 1 1
      chapter07/gzip.xml
  41. 1 1
      chapter07/m4.xml
  42. 1 1
      chapter07/make.xml
  43. 1 1
      chapter07/ncurses.xml
  44. 1 1
      chapter07/patch.xml
  45. 1 1
      chapter07/python.xml
  46. 1 1
      chapter07/sed.xml
  47. 1 1
      chapter07/tar.xml
  48. 1 1
      chapter07/texinfo.xml
  49. 1 1
      chapter07/xz.xml

+ 0 - 156
chapter06/binutils-pass1.xml

@@ -1,156 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-  <!ENTITY % general-entities SYSTEM "../general.ent">
-  %general-entities;
-]>
-
-<sect1 id="ch-tools-binutils-pass1" role="wrap">
-  <?dbhtml filename="binutils-pass1.html"?>
-
-  <sect1info condition="script">
-    <productname>binutils-pass1</productname>
-    <productnumber>&binutils-version;</productnumber>
-    <address>&binutils-url;</address>
-  </sect1info>
-
-  <title>Binutils-&binutils-version; - Pass 1</title>
-
-  <indexterm zone="ch-tools-binutils-pass1">
-    <primary sortas="a-Binutils">Binutils</primary>
-    <secondary>tools, pass 1</secondary>
-  </indexterm>
-
-  <sect2 role="package">
-    <title/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/binutils.xml"
-    xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
-
-    <segmentedlist>
-      <segtitle>&buildtime;</segtitle>
-      <segtitle>&diskspace;</segtitle>
-
-      <seglistitem>
-        <seg>&binutils-ch5p1-sbu;</seg>
-        <seg>&binutils-ch5p1-du;</seg>
-      </seglistitem>
-    </segmentedlist>
-
-  </sect2>
-
-  <sect2 role="installation">
-    <title>Installation of Cross Binutils</title>
-
-    <note><para>Go back and re-read the notes in the previous section.
-    Understanding the notes labeled important will save you a lot
-    of problems later.</para></note>
-
-    <para>It is important that Binutils be the first package compiled
-    because both Glibc and GCC perform various tests on the available
-    linker and assembler to determine which of their own features to
-    enable.</para>
-
-    <para>The Binutils documentation recommends building Binutils 
-    in a dedicated build directory:</para>
-
-<screen><userinput remap="pre">mkdir -v build
-cd       build</userinput></screen>
-
-    <note>
-      <para>In order for the SBU values listed in the rest of the book
-      to be of any use, measure the time it takes to build this package from
-      the configuration, up to and including the first install. To achieve
-      this easily, wrap the commands in a <command>time</command>
-      command like this: <userinput>time { ./configure ... &amp;&amp; ...
-      &amp;&amp; make install; }</userinput>.</para>
-    </note>
-<!--
-    <note><para>The approximate build SBU values and required disk space
-    in Chapter&nbsp;5 does not include test suite data.</para></note>
--->
-    <para>Now prepare Binutils for compilation:</para>
-
-<screen><userinput remap="configure">../configure --prefix=$LFS/tools       \
-             --with-sysroot=$LFS        \
-             --target=$LFS_TGT          \
-             --disable-nls              \
-             --disable-werror</userinput></screen>
-
-    <variablelist>
-      <title>The meaning of the configure options:</title>
-
-      <varlistentry>
-        <term><parameter>--prefix=$LFS/tools</parameter></term>
-        <listitem>
-          <para>This tells the configure script to prepare to install the
-          Binutils programs in the <filename
-          class="directory">$LFS/tools</filename> directory.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><parameter>--with-sysroot=$LFS</parameter></term>
-        <listitem>
-          <para>For cross compilation, this tells the build system to look in
-          $LFS for the target system libraries as needed.</para>
-        </listitem>
-      </varlistentry>
- <!--
-      <varlistentry>
-        <term><parameter>- -with-lib-path=/tools/lib</parameter></term>
-        <listitem>
-          <para>This specifies which library path the linker should be
-          configured to use.</para>
-        </listitem>
-      </varlistentry>
-  -->
-      <varlistentry>
-        <term><envar>--target=$LFS_TGT</envar></term>
-        <listitem>
-          <para>Because the machine description in the <envar>LFS_TGT</envar>
-          variable is slightly different than the value returned by the
-          <command>config.guess</command> script, this switch will tell the
-          <command>configure</command> script to adjust Binutil's build system
-          for building a cross linker.  </para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><parameter>--disable-nls</parameter></term>
-        <listitem>
-          <para>This disables internationalization as i18n is not needed for the
-          temporary tools.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><parameter>--disable-werror</parameter></term>
-        <listitem>
-          <para>This prevents the build from stopping in the event that there
-          are warnings from the host's compiler.</para>
-        </listitem>
-      </varlistentry>
-
-    </variablelist>
-
-    <para>Continue with compiling the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make install</userinput></screen>
-
-  </sect2>
-
-  <sect2 role="content">
-    <title/>
-
-    <para>Details on this package are located in
-    <xref linkend="contents-binutils" role="."/></para>
-
-  </sect2>
-
-</sect1>

+ 0 - 82
chapter06/bison.xml

@@ -1,82 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-  <!ENTITY % general-entities SYSTEM "../general.ent">
-  %general-entities;
-]>
-
-<sect1 id="ch-tools-bison" role="wrap">
-  <?dbhtml filename="bison.html"?>
-
-  <sect1info condition="script">
-    <productname>bison</productname>
-    <productnumber>&bison-version;</productnumber>
-    <address>&bison-url;</address>
-  </sect1info>
-
-  <title>Bison-&bison-version;</title>
-
-  <indexterm zone="ch-tools-bison">
-    <primary sortas="a-Bison">Bison</primary>
-    <secondary>tools</secondary>
-  </indexterm>
-
-  <sect2 role="package">
-    <title/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter08/bison.xml"
-    xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
-
-    <segmentedlist>
-      <segtitle>&buildtime;</segtitle>
-      <segtitle>&diskspace;</segtitle>
-
-      <seglistitem>
-        <seg>&bison-ch5-sbu;</seg>
-        <seg>&bison-ch5-du;</seg>
-      </seglistitem>
-    </segmentedlist>
-
-  </sect2>
-
-  <sect2 role="installation">
-    <title>Installation of Bison</title>
-
-    <para>Prepare Bison for compilation:</para>
-
-<screen><userinput remap="configure">./configure --prefix=/usr                     \
-            --docdir=/usr/share/doc/bison-&bison-version;</userinput></screen>
-
-    <variablelist>
-      <title>The meaning of the new configure option:</title>
-
-      <varlistentry>
-        <term><parameter>--docdir=/usr/share/doc/bison-&bison-version;</parameter></term>
-        <listitem>
-          <para>This tells the build system to install bison documentation
-	  into a versioned directory.</para>
-        </listitem>
-      </varlistentry>
-
-    </variablelist>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make install</userinput></screen>
-
-  </sect2>
-
-  <sect2 role="content">
-    <title/>
-
-    <para>Details on this package are located in
-    <xref linkend="contents-bison" role="."/></para>
-
-  </sect2>
-
-</sect1>

+ 0 - 112
chapter06/bzip2.xml

@@ -1,112 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-  <!ENTITY % general-entities SYSTEM "../general.ent">
-  %general-entities;
-]>
-
-<sect1 id="ch-tools-bzip2" role="wrap">
-  <?dbhtml filename="bzip2.html"?>
-
-  <sect1info condition="script">
-    <productname>bzip2</productname>
-    <productnumber>&bzip2-version;</productnumber>
-    <address>&bzip2-url;</address>
-  </sect1info>
-
-  <title>Bzip2-&bzip2-version;</title>
-
-  <indexterm zone="ch-tools-bzip2">
-    <primary sortas="a-Bzip2">Bzip2</primary>
-    <secondary>tools</secondary>
-  </indexterm>
-
-  <sect2 role="package">
-    <title/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/bzip2.xml"
-    xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
-
-    <segmentedlist>
-      <segtitle>&buildtime;</segtitle>
-      <segtitle>&diskspace;</segtitle>
-
-      <seglistitem>
-        <seg>&bzip2-ch5-sbu;</seg>
-        <seg>&bzip2-ch5-du;</seg>
-      </seglistitem>
-    </segmentedlist>
-
-  </sect2>
-
-  <sect2 role="installation">
-    <title>Installation of Bzip2</title>
-
-    <para>Apply a patch that will install the documentation for this
-    package:</para>
-
-<screen><userinput remap="pre">patch -Np1 -i ../&bzip2-docs-patch;</userinput></screen>
-
-    <para>The following command ensures installation of symbolic links are
-    relative:</para>
-
-<screen><userinput remap="pre">sed -i 's@\(ln -s -f \)$(PREFIX)/bin/@\1@' Makefile</userinput></screen>
-
-    <para>Ensure the man pages are installed into the correct location:</para>
-
-<screen><userinput remap="pre">sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g" Makefile</userinput></screen>
-
-    <para>The Bzip2 package does not contain a <command>configure</command>
-    script. There are two <filename>Makefile</filename>, one for the shared
-    library, and the other for the static library. Since we need both, We
-    do the compilation in two stages. First the shared library:</para>
-
-<screen><userinput remap="make">make CC=$LFS_TGT-gcc -f Makefile-libbz2_so
-make clean</userinput></screen>
-
-    <variablelist>
-      <title>The meaning of the make parameter:</title>
-
-      <varlistentry>
-        <term><parameter>-f Makefile-libbz2_so</parameter></term>
-        <listitem>
-          <para>This will cause Bzip2 to be built using a different
-          <filename>Makefile</filename> file, in this case the
-          <filename>Makefile-libbz2_so</filename> file, which creates a dynamic
-          <filename class="libraryfile">libbz2.so</filename> library and links
-          the Bzip2 utilities against it.</para>
-        </listitem>
-      </varlistentry>
-
-    </variablelist>
-
-    <para>Compile and test the package with:</para>
-
-<screen><userinput remap="make">make CC=$LFS_TGT-gcc AR=$LFS_TGT-ar RANLIB=$LFS_TGT-ranlib</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make PREFIX=$LFS/usr install</userinput></screen>
-
-    <para>Install the shared <command>bzip2</command> binary into the
-    <filename class="directory">/bin</filename> directory, make some necessary
-    symbolic links, and clean up:</para>
-
-<screen><userinput remap="install">cp -v bzip2-shared $LFS/bin/bzip2
-cp -av libbz2.so* $LFS/lib
-ln -sv ../../lib/libbz2.so.1.0 $LFS/usr/lib/libbz2.so
-rm -v $LFS/usr/bin/{bunzip2,bzcat,bzip2}
-ln -sv bzip2 $LFS/bin/bunzip2
-ln -sv bzip2 $LFS/bin/bzcat</userinput></screen>
-
-  </sect2>
-
-  <sect2 role="content">
-    <title/>
-    <para>Details on this package are located in
-    <xref linkend="contents-bzip2" role="."/></para>
-
-  </sect2>
-
-</sect1>

+ 0 - 65
chapter06/chroot.xml

@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-  <!ENTITY % general-entities SYSTEM "../general.ent">
-  %general-entities;
-]>
-
-<sect1 id="ch-tools-chroot">
-  <?dbhtml filename="chroot.html"?>
-
-  <title>Entering the Chroot Environment</title>
-
-  <para>Now that all the packages which depend on themselves for being built
-  are on the system, it is time to enter the chroot environment to finish
-  installing the remaining temporary tools. This environment will be in use
-  also for installing the final system. As user <systemitem
-  class="username">root</systemitem>, run the following command to enter the
-  realm that is, at the moment, populated with only the temporary tools:</para>
-
-<screen role="nodump"><userinput>chroot "$LFS" /usr/bin/env -i \
-    HOME=/root                  \
-    TERM="$TERM"                \
-    PS1='(lfs chroot) \u:\w\$ ' \
-    PATH=/bin:/usr/bin:/sbin:/usr/sbin \
-    /bin/bash --login +h</userinput></screen>
-
-  <para>The <parameter>-i</parameter> option given to the <command>env</command>
-  command will clear all variables of the chroot environment. After that, only
-  the <envar>HOME</envar>, <envar>TERM</envar>, <envar>PS1</envar>, and
-  <envar>PATH</envar> variables are set again. The
-  <parameter>TERM=$TERM</parameter> construct will set the <envar>TERM</envar>
-  variable inside chroot to the same value as outside chroot. This variable is
-  needed for programs like <command>vim</command> and <command>less</command>
-  to operate properly.  If other variables are needed, such as
-  <envar>CFLAGS</envar> or <envar>CXXFLAGS</envar>, this is a good place to set
-  them again.</para>
-
-  <para>From this point on, there is no need to use the
-  <envar>LFS</envar> variable anymore, because all work will be restricted
-  to the LFS file system.  This is because the Bash shell is told that
-  <filename class="directory">$LFS</filename> is now the root
-  (<filename class="directory">/</filename>) directory.</para>
-
-  <para>Notice that <filename class="directory">/tools/bin</filename> is not
-  anymore in the <envar>PATH</envar>. This means that a temporary tool will no longer be
-  used once its final version is installed. This occurs when the shell does not
-  <quote>remember</quote> the locations of executed binaries&mdash;for this
-  reason, hashing is switched off by passing the <parameter>+h</parameter> option
-  to <command>bash</command>.</para>
-
-  <para>Note that the <command>bash</command> prompt will say
-  <computeroutput>I have no name!</computeroutput> This is normal because the
-  <filename>/etc/passwd</filename> file has not been created yet.</para>
-
-  <note>
-    <para>It is important that all the commands throughout the remainder of this
-    chapter and the following chapters are run from within the chroot
-    environment. If you leave this environment for any reason (rebooting for
-    example), ensure that the virtual kernel filesystems are mounted as
-    explained in <xref linkend="ch-system-bindmount"/> and <xref
-    linkend="ch-system-kernfsmount"/> and enter chroot again before continuing
-    with the installation.</para>
-  </note>
-
-</sect1>

+ 0 - 204
chapter06/createfiles.xml

@@ -1,204 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-  <!ENTITY % general-entities SYSTEM "../general.ent">
-  %general-entities;
-]>
-
-<sect1 id="ch-tools-createfiles">
-  <?dbhtml filename="createfiles.html"?>
-
-  <title>Creating Essential Files and Symlinks</title>
-
-  <indexterm zone="ch-tools-createfiles">
-    <primary sortas="e-/etc/passwd">/etc/passwd</primary>
-  </indexterm>
-
-  <indexterm zone="ch-tools-createfiles">
-    <primary sortas="e-/etc/group">/etc/group</primary>
-  </indexterm>
-
-  <indexterm zone="ch-tools-createfiles">
-    <primary sortas="e-/var/run/utmp">/var/run/utmp</primary>
-  </indexterm>
-
-  <indexterm zone="ch-tools-createfiles">
-    <primary sortas="e-/var/log/btmp">/var/log/btmp</primary>
-  </indexterm>
-
-  <indexterm zone="ch-tools-createfiles">
-    <primary sortas="e-/var/log/lastlog">/var/log/lastlog</primary>
-  </indexterm>
-
-  <indexterm zone="ch-tools-createfiles">
-    <primary sortas="e-/var/log/wtmp">/var/log/wtmp</primary>
-  </indexterm>
-
-  <para>Historically, Linux maintains a list of the mounted file systems in the
-  file <filename>/etc/mtab</filename>. Modern kernels maintain this list
-  internally and exposes it to the user via the <filename
-  class="directory">/proc</filename> filesystem. To satisfy utilities that
-  expect the presence of <filename>/etc/mtab</filename>, create the following
-  symbolic link:</para>
-
-<screen><userinput>ln -sv /proc/self/mounts /etc/mtab</userinput></screen>
-
-  <para>In order for user <systemitem class="username">root</systemitem> to be
-  able to login and for the name <quote>root</quote> to be recognized, there
-  must be relevant entries in the <filename>/etc/passwd</filename> and
-  <filename>/etc/group</filename> files.</para>
-
-  <para>Create the <filename>/etc/passwd</filename> file by running the following
-  command:</para>
-
-<screen revision="sysv"><userinput>cat &gt; /etc/passwd &lt;&lt; "EOF"
-<literal>root:x:0:0:root:/root:/bin/bash
-bin:x:1:1:bin:/dev/null:/bin/false
-daemon:x:6:6:Daemon User:/dev/null:/bin/false
-messagebus:x:18:18:D-Bus Message Daemon User:/var/run/dbus:/bin/false
-nobody:x:99:99:Unprivileged User:/dev/null:/bin/false</literal>
-EOF</userinput></screen>
-
-<screen revision="systemd"><userinput>cat &gt; /etc/passwd &lt;&lt; "EOF"
-<literal>root:x:0:0:root:/root:/bin/bash
-bin:x:1:1:bin:/dev/null:/bin/false
-daemon:x:6:6:Daemon User:/dev/null:/bin/false
-messagebus:x:18:18:D-Bus Message Daemon User:/var/run/dbus:/bin/false
-systemd-bus-proxy:x:72:72:systemd Bus Proxy:/:/bin/false
-systemd-journal-gateway:x:73:73:systemd Journal Gateway:/:/bin/false
-systemd-journal-remote:x:74:74:systemd Journal Remote:/:/bin/false
-systemd-journal-upload:x:75:75:systemd Journal Upload:/:/bin/false
-systemd-network:x:76:76:systemd Network Management:/:/bin/false
-systemd-resolve:x:77:77:systemd Resolver:/:/bin/false
-systemd-timesync:x:78:78:systemd Time Synchronization:/:/bin/false
-systemd-coredump:x:79:79:systemd Core Dumper:/:/bin/false
-nobody:x:99:99:Unprivileged User:/dev/null:/bin/false</literal>
-EOF</userinput></screen>
-
-  <para>The actual password for <systemitem class="username">root</systemitem>
-  (the <quote>x</quote> used here is just a placeholder) will be set later.</para>
-
-  <para>Create the <filename>/etc/group</filename> file by running the following
-  command:</para>
-
-<screen revision="sysv"><userinput>cat &gt; /etc/group &lt;&lt; "EOF"
-<literal>root:x:0:
-bin:x:1:daemon
-sys:x:2:
-kmem:x:3:
-tape:x:4:
-tty:x:5:
-daemon:x:6:
-floppy:x:7:
-disk:x:8:
-lp:x:9:
-dialout:x:10:
-audio:x:11:
-video:x:12:
-utmp:x:13:
-usb:x:14:
-cdrom:x:15:
-adm:x:16:
-messagebus:x:18:
-input:x:24:
-mail:x:34:
-kvm:x:61:
-wheel:x:97:
-nogroup:x:99:
-users:x:999:</literal>
-EOF</userinput></screen>
-
-<screen revision="systemd"><userinput>cat &gt; /etc/group &lt;&lt; "EOF"
-<literal>root:x:0:
-bin:x:1:daemon
-sys:x:2:
-kmem:x:3:
-tape:x:4:
-tty:x:5:
-daemon:x:6:
-floppy:x:7:
-disk:x:8:
-lp:x:9:
-dialout:x:10:
-audio:x:11:
-video:x:12:
-utmp:x:13:
-usb:x:14:
-cdrom:x:15:
-adm:x:16:
-messagebus:x:18:
-systemd-journal:x:23:
-input:x:24:
-mail:x:34:
-kvm:x:61:
-systemd-bus-proxy:x:72:
-systemd-journal-gateway:x:73:
-systemd-journal-remote:x:74:
-systemd-journal-upload:x:75:
-systemd-network:x:76:
-systemd-resolve:x:77:
-systemd-timesync:x:78:
-systemd-coredump:x:79:
-wheel:x:97:
-nogroup:x:99:
-users:x:999:</literal>
-EOF</userinput></screen>
-
-  <para>The created groups are not part of any standard&mdash;they are groups
-  decided on in part by the requirements of the Udev configuration in the next
-  chapter, and in part by common convention employed by a number of existing
-  Linux distributions. In addition, some test suites rely on specific users
-  or groups.  The Linux Standard Base (LSB, available at <ulink
-  url="http://www.linuxbase.org"/>) recommends only that, besides the group
-  <systemitem class="groupname">root</systemitem> with a Group ID (GID) of 0,
-  a group <systemitem class="groupname">bin</systemitem> with a GID of 1 be
-  present. All other group names and GIDs can be chosen freely by the system
-  administrator since well-written programs do not depend on GID numbers, but
-  rather use the group's name.</para>
-
-  <para>Some tests in <xref linkend="chapter-building-system"/> need a regular
-  user. We add this user here and delete this account at the end of that
-  chapter.</para>
-
-<screen><userinput>echo "tester:x:$(ls -n $(tty) | cut -d" " -f3):101::/home/tester:/bin/bash" &gt;&gt; /etc/passwd
-echo "tester:x:101:" &gt;&gt; /etc/group
-install -o tester -d /home/tester</userinput></screen>
-
-  <para>To remove the <quote>I have no name!</quote> prompt, start a new
-  shell. Since the
-  <filename>/etc/passwd</filename> and <filename>/etc/group</filename>
-  files have been created, user name and group name resolution will now
-  work:</para>
-
-<screen role="nodump"><userinput>exec /bin/bash --login +h</userinput></screen>
-
-  <para>Note the use of the <parameter>+h</parameter> directive. This tells
-  <command>bash</command> not to use its internal path hashing. Without this
-  directive, <command>bash</command> would remember the paths to binaries it has
-  executed. To ensure the use of the newly compiled binaries as soon as they are
-  installed, the <parameter>+h</parameter> directive will be used for the duration
-  of this chapter.</para>
-
-  <para>The <command>login</command>, <command>agetty</command>, and
-  <command>init</command> programs (and others) use a number of log
-  files to record information such as who was logged into the system and
-  when. However, these programs will not write to the log files if they
-  do not already exist. Initialize the log files and give them
-  proper permissions:</para>
-
-<screen><userinput>touch /var/log/{btmp,lastlog,faillog,wtmp}
-chgrp -v utmp /var/log/lastlog
-chmod -v 664  /var/log/lastlog
-chmod -v 600  /var/log/btmp</userinput></screen>
-
-  <para>The <filename>/var/log/wtmp</filename> file records all logins and
-  logouts. The <filename>/var/log/lastlog</filename> file records when each
-  user last logged in. The <filename>/var/log/faillog</filename> file records
-  failed login attempts.  The <filename>/var/log/btmp</filename> file records
-  the bad login attempts.</para>
-
-  <note><para>The <filename>/run/utmp</filename> file records the users that
-  are currently logged in.  This file is created dynamically in the boot
-  scripts.</para></note>
-
-</sect1>

+ 0 - 59
chapter06/creatingdirs.xml

@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-  <!ENTITY % general-entities SYSTEM "../general.ent">
-  %general-entities;
-]>
-
-<sect1 id="ch-tools-creatingdirs">
-  <?dbhtml filename="creatingdirs.html"?>
-
-  <title>Creating Directories</title>
-
-  <para>It is time to create the full structure in the LFS file system. Create
-  a standard directory tree by issuing the following commands:</para>
-
-<screen><userinput>mkdir -pv /{bin,boot,etc/{opt,sysconfig},home,lib/firmware,mnt,opt}
-mkdir -pv /{media/{floppy,cdrom},srv,var}
-install -dv -m 0750 /root
-install -dv -m 1777 /tmp /var/tmp
-mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src}
-mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man}
-mkdir -pv  /usr/{,local/}share/{misc,terminfo,zoneinfo}
-mkdir -pv /usr/{,local/}share/man/man{1..8}
-
-mkdir -v /var/{log,mail,spool}
-ln -sv /run /var/run
-ln -sv /run/lock /var/lock
-mkdir -pv /var/{opt,cache,lib/{color,misc,locate},local}</userinput></screen>
-
-  <para>Directories are, by default, created with permission mode 755, but
-  this is not desirable for all directories. In the commands above, two
-  changes are made&mdash;one to the home directory of user <systemitem
-  class="username">root</systemitem>, and another to the directories for
-  temporary files.</para>
-
-  <para>The first mode change ensures that not just anybody can enter
-  the <filename class="directory">/root</filename> directory&mdash;the
-  same as a normal user would do with his or her home directory. The
-  second mode change makes sure that any user can write to the
-  <filename class="directory">/tmp</filename> and <filename
-  class="directory">/var/tmp</filename> directories, but cannot remove
-  another user's files from them. The latter is prohibited by the so-called
-  <quote>sticky bit,</quote> the highest bit (1) in the 1777 bit mask.</para>
-
-  <sect2>
-    <title>FHS Compliance Note</title>
-
-    <para>The directory tree is based on the Filesystem Hierarchy Standard
-    (FHS) (available at <ulink
-    url="https://refspecs.linuxfoundation.org/fhs.shtml"/>).  The FHS also specifies
-    the optional existence of some directories such as <filename
-    class="directory">/usr/local/games</filename> and <filename
-    class="directory">/usr/share/games</filename>.  We create only the
-    directories that are needed. However, feel free to create these
-    directories.  </para>
-
-  </sect2>
-
-</sect1>

+ 0 - 96
chapter06/dejagnu.xml

@@ -1,96 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-  <!ENTITY % general-entities SYSTEM "../general.ent">
-  %general-entities;
-]>
-
-<sect1 id="ch-tools-dejagnu" role="wrap">
-  <?dbhtml filename="dejagnu.html"?>
-
-  <sect1info condition="script">
-    <productname>dejagnu</productname>
-    <productnumber>&dejagnu-version;</productnumber>
-    <address>&dejagnu-url;</address>
-  </sect1info>
-
-  <title>DejaGNU-&dejagnu-version;</title>
-
-  <indexterm zone="ch-tools-dejagnu">
-    <primary sortas="a-DejaGNU">DejaGNU</primary>
-  </indexterm>
-
-  <sect2 role="package">
-    <title/>
-
-    <para>The <application>DejaGnu</application> package contains a framework for running test
-      suites on GNU tools. It is written in <command>expect</command>, which itself
-      uses <application>Tcl</application> (Tool Command Language).</para>
-
-    <segmentedlist>
-      <segtitle>&buildtime;</segtitle>
-      <segtitle>&diskspace;</segtitle>
-
-      <seglistitem>
-        <seg>&dejagnu-ch5-sbu;</seg>
-        <seg>&dejagnu-ch5-du;</seg>
-      </seglistitem>
-    </segmentedlist>
-
-  </sect2>
-
-  <sect2 role="installation">
-    <title>Installation of DejaGNU</title>
-
-    <para>Prepare DejaGNU for compilation:</para>
-
-<screen><userinput remap="configure">./configure --prefix=/usr
-makeinfo --html --no-split -o doc/dejagnu.html doc/dejagnu.texi
-makeinfo --plaintext       -o doc/dejagnu.txt  doc/dejagnu.texi</userinput></screen>
-
-    <para>Build and install the package:</para>
-
-<screen><userinput remap="install">make install
-install -v -dm755  /usr/share/doc/dejagnu-&dejagnu-version;
-install -v -m644   doc/dejagnu.{html,txt} \
-                   /usr/share/doc/dejagnu-&dejagnu-version;</userinput></screen>
-
-    <para>To test the results, issue:</para>
-
-<screen><userinput remap="test">make check</userinput></screen>
-
-  </sect2>
-
-
-  <sect2 id="contents-dejagnu" role="content">
-    <title>Contents of DejaGNU</title>
-
-    <segmentedlist>
-      <segtitle>Installed program</segtitle>
-
-      <seglistitem>
-        <seg>runtest</seg>
-      </seglistitem>
-    </segmentedlist>
-
-    <variablelist>
-      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
-      <?dbfo list-presentation="list"?>
-      <?dbhtml list-presentation="table"?>
-
-      <varlistentry id="runtest">
-        <term><command>runtest</command></term>
-        <listitem>
-          <para>A wrapper script that locates the proper
-          <command>expect</command> shell and then runs DejaGNU</para>
-          <indexterm zone="ch-tools-dejagnu runtest">
-            <primary sortas="b-runtest">runtest</primary>
-          </indexterm>
-        </listitem>
-      </varlistentry>
-
-    </variablelist>
-
-  </sect2>
-
-</sect1>

+ 0 - 139
chapter06/expect.xml

@@ -1,139 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-  <!ENTITY % general-entities SYSTEM "../general.ent">
-  %general-entities;
-]>
-
-<sect1 id="ch-tools-expect" role="wrap">
-  <?dbhtml filename="expect.html"?>
-
-  <sect1info condition="script">
-    <productname>expect</productname>
-    <productnumber>&expect-version;</productnumber>
-    <address>&expect-url;</address>
-  </sect1info>
-
-  <title>Expect-&expect-version;</title>
-
-  <indexterm zone="ch-tools-expect">
-    <primary sortas="a-Expect">Expect</primary>
-  </indexterm>
-
-  <sect2 role="package">
-    <title/>
-
-    <para>The <application>Expect</application> package contains tools for
-    automating, via scripted dialogues, interactive applications such as
-    <command>telnet</command>, <command>ftp</command>,
-    <command>passwd</command>, <command>fsck</command>,
-    <command>rlogin</command>, and <command>tip</command>.
-    <application>Expect</application> is also useful for testing these same
-    applications as well as easing all sorts of tasks that are prohibitively
-    difficult with anything else. The <application>DejaGnu</application>
-    framework is written in <application>Expect</application>.</para>
-
-    <segmentedlist>
-      <segtitle>&buildtime;</segtitle>
-      <segtitle>&diskspace;</segtitle>
-
-      <seglistitem>
-        <seg>&expect-ch5-sbu;</seg>
-        <seg>&expect-ch5-du;</seg>
-      </seglistitem>
-    </segmentedlist>
-
-  </sect2>
-
-  <sect2 role="installation">
-    <title>Installation of Expect</title>
-
-    <para>Prepare Expect for compilation:</para>
-
-<screen><userinput remap="configure">
-./configure --prefix=/usr           \
-            --with-tcl=/usr/lib     \
-            --enable-shared         \
-            --mandir=/usr/share/man \
-            --with-tclinclude=/usr/include</userinput></screen>
-
-    <variablelist>
-      <title>The meaning of the configure options:</title>
-
-      <varlistentry>
-        <term><parameter>--with-tcl=/usr/lib</parameter></term>
-        <listitem>
-          <para>This parameter is needed to tell the
-          <command>configure</command> where the
-          <command>tclConfig.sh</command> is located.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><parameter>--with-tclinclude=/usr/include</parameter></term>
-        <listitem>
-          <para>This explicitly tells Expect where to find Tcl's internal
-          headers. Using this option avoids conditions where
-          <command>configure</command> fails because it cannot automatically
-          discover the location of Tcl's headers.</para>
-        </listitem>
-      </varlistentry>
-
-    </variablelist>
-
-    <para>Build the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make install
-ln -svf expect&expect-version;/libexpect&expect-version;.so /usr/lib</userinput></screen>
-
-  </sect2>
-
-  <sect2 id="contents-expect" role="content">
-    <title>Contents of Expect</title>
-
-    <segmentedlist>
-      <segtitle>Installed program</segtitle>
-      <segtitle>Installed library</segtitle>
-
-      <seglistitem>
-        <seg>expect</seg>
-        <seg>libexpect-&expect-lib-version;.so</seg>
-      </seglistitem>
-    </segmentedlist>
-
-    <variablelist>
-      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
-      <?dbfo list-presentation="list"?>
-      <?dbhtml list-presentation="table"?>
-
-      <varlistentry id="expect">
-        <term><command>expect</command></term>
-        <listitem>
-          <para>Communicates with other interactive programs according
-          to a script</para>
-          <indexterm zone="ch-tools-expect expect">
-            <primary sortas="b-expect">expect</primary>
-          </indexterm>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry id="libexpect">
-        <term><filename class="libraryfile">libexpect-&expect-lib-version;.so</filename></term>
-        <listitem>
-          <para>Contains functions that allow Expect to be used as a Tcl
-          extension or to be used directly from C or C++ (without Tcl)</para>
-          <indexterm zone="ch-tools-expect libexpect">
-            <primary sortas="c-libexpect-&expect-lib-version;">libexpect-&expect-lib-version;</primary>
-          </indexterm>
-        </listitem>
-      </varlistentry>
-
-    </variablelist>
-
-  </sect2>
-
-</sect1>

+ 0 - 88
chapter06/flex.xml

@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-  <!ENTITY % general-entities SYSTEM "../general.ent">
-  %general-entities;
-]>
-
-<sect1 id="ch-tools-flex" role="wrap">
-  <?dbhtml filename="flex.html"?>
-
-  <sect1info condition="script">
-    <productname>flex</productname>
-    <productnumber>&flex-version;</productnumber>
-    <address>&flex-url;</address>
-  </sect1info>
-
-  <title>Flex-&flex-version;</title>
-
-  <indexterm zone="ch-tools-flex">
-    <primary sortas="a-Flex">Flex</primary>
-    <secondary>tools</secondary>
-  </indexterm>
-
-  <sect2 role="package">
-    <title/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/flex.xml"
-    xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
-
-    <segmentedlist>
-      <segtitle>&buildtime;</segtitle>
-      <segtitle>&diskspace;</segtitle>
-
-      <seglistitem>
-        <seg>&flex-ch5-sbu;</seg>
-        <seg>&flex-ch5-du;</seg>
-      </seglistitem>
-    </segmentedlist>
-
-  </sect2>
-
-  <sect2 role="installation">
-    <title>Installation of Flex</title>
-
-    <para>Prepare Flex for compilation:</para>
-
-<screen><userinput remap="configure">./configure --prefix=/usr                     \
-            --docdir=/usr/share/doc/flex-&flex-version;</userinput></screen>
-
-    <!--
-    <variablelist>
-      <title>The meaning of the new configure option:</title>
-
-      <varlistentry>
-        <term><parameter>- -disable-bootstrap</parameter></term>
-	<listitem>
-          <para>Normally, building flex is done in two stages. A first
-	  programs, which is used to generate the source of a second one,
-	  which is then compiled. When using cross-compilation, the first
-	  program is generated on the build system. However, due to a bug
-	  in configure, the presence of some function is tested only on the
-	  host system. If this function is not found on the build system, the
-	  build fails. This can be prevented by disabling the two stage
-	  build.</para>
-	</listitem>
-      </varlistentry>
-    </variablelist>
-    -->
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make install</userinput></screen>
-
-  </sect2>
-
-  <sect2 role="content">
-    <title/>
-
-    <para>Details on this package are located in
-    <xref linkend="contents-flex" role="."/></para>
-
-  </sect2>
-
-</sect1>

+ 0 - 208
chapter06/gcc-pass1.xml

@@ -1,208 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-  <!ENTITY % general-entities SYSTEM "../general.ent">
-  %general-entities;
-]>
-
-<sect1 id="ch-tools-gcc-pass1" role="wrap" xreflabel="gcc-pass1">
-  <?dbhtml filename="gcc-pass1.html"?>
-
-  <sect1info condition="script">
-    <productname>gcc-pass1</productname>
-    <productnumber>&gcc-version;</productnumber>
-    <address>&gcc-url;</address>
-  </sect1info>
-
-  <title>GCC-&gcc-version; - Pass 1</title>
-
-  <indexterm zone="ch-tools-gcc-pass1">
-    <primary sortas="a-GCC">GCC</primary>
-    <secondary>tools, pass 1</secondary>
-  </indexterm>
-
-  <sect2 role="package">
-    <title/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/gcc.xml"
-    xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
-
-    <segmentedlist>
-      <segtitle>&buildtime;</segtitle>
-      <segtitle>&diskspace;</segtitle>
-
-      <seglistitem>
-        <seg>&gcc-ch5p1-sbu;</seg>
-        <seg>&gcc-ch5p1-du;</seg>
-      </seglistitem>
-    </segmentedlist>
-
-  </sect2>
-
-  <sect2 role="installation">
-    <title>Installation of Cross GCC</title>
-
-    <para>GCC requires the GMP, MPFR and MPC packages. As these packages may
-    not be included in your host distribution, they will be built with
-    GCC.  Unpack each package into the GCC source directory and rename the
-    resulting directories so the GCC build procedures will automatically
-    use them:</para>
-
-    <note><para>There are frequent misunderstandings about this chapter.  The
-    procedures are the same as every other chapter as explained earlier (<xref
-    linkend='buildinstr'/>).  First extract the gcc tarball from the sources
-    directory and then change to the directory created.  Only then should you
-    proceed with the instructions below.</para></note>
-
-<screen><userinput remap="pre">tar -xf ../mpfr-&mpfr-version;.tar.xz
-mv -v mpfr-&mpfr-version; mpfr
-tar -xf ../gmp-&gmp-version;.tar.xz
-mv -v gmp-&gmp-version; gmp
-tar -xf ../mpc-&mpc-version;.tar.gz
-mv -v mpc-&mpc-version; mpc</userinput></screen>
-
-    <para>On x86_64 hosts, set the default directory name for
-    64-bit libraries to <quote>lib</quote>:</para>
-
-<screen><userinput remap="pre">case $(uname -m) in
-  x86_64)
-    sed -e '/m64=/s/lib64/lib/' \
-        -i.orig gcc/config/i386/t-linux64
- ;;
-esac</userinput></screen>
-
-    <para>The GCC documentation recommends building GCC 
-    in a dedicated build directory:</para>
-
-<screen><userinput remap="pre">mkdir -v build
-cd       build</userinput></screen>
-
-    <para>Prepare GCC for compilation:</para>
-
-<screen><userinput remap="configure">../configure                                       \
-    --target=$LFS_TGT                              \
-    --prefix=$LFS/tools                            \
-    --with-glibc-version=2.11                      \
-    --with-sysroot=$LFS                            \
-    --with-newlib                                  \
-    --without-headers                              \
-    --enable-initfini-array                        \
-    --disable-nls                                  \
-    --disable-shared                               \
-    --disable-multilib                             \
-    --disable-decimal-float                        \
-    --disable-threads                              \
-    --disable-libatomic                            \
-    --disable-libgomp                              \
-    --disable-libquadmath                          \
-    --disable-libssp                               \
-    --disable-libvtv                               \
-    --disable-libstdcxx                            \
-    --enable-languages=c,c++</userinput></screen>
-    <variablelist>
-      <title>The meaning of the configure options:</title>
-
-      <varlistentry>
-        <term><parameter>--with-glibc-version=2.11</parameter></term>
-        <listitem>
-          <para>This option ensures the package will be compatible with the host's
-          version of glibc.  It is set to the minimum glibc requirement 
-          specified in the <xref linkend="ch-partitioning-hostreqs"/>.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><parameter>--with-newlib</parameter></term>
-        <listitem>
-          <para>Since a working C library is not yet available, this ensures
-          that the inhibit_libc constant is defined when building libgcc. This prevents
-          the compiling of any code that requires libc support.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><parameter>--without-headers</parameter></term>
-        <listitem>
-          <para>When creating a complete cross-compiler, GCC requires
-          standard headers compatible with the target system. For our
-          purposes these headers will not be needed. This switch prevents
-          GCC from looking for them.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><parameter>--disable-shared</parameter></term>
-        <listitem>
-          <para>This switch forces GCC to link its internal libraries
-	  statically. We need this because the shared libraries require glibc,
-	  which is not yet installed on the target system.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><parameter>--disable-decimal-float, --disable-threads,
-              --disable-libatomic, --disable-libgomp, <!--- -disable-libmpx,-->
-        --disable-libquadmath, --disable-libssp, --disable-libvtv,
-        --disable-libstdcxx</parameter></term>
-        <listitem>
-          <para>These switches disable support for the decimal floating point
-          extension, threading, libatomic, libgomp, <!--libmpx, --> libquadmath, libssp,
-          libvtv, and the C++ standard library respectively. These features
-          will fail to compile when building a cross-compiler and are not
-          necessary for the task of cross-compiling the temporary libc.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><parameter>--disable-multilib</parameter></term>
-        <listitem>
-          <para>On x86_64, LFS does not yet support a multilib configuration.
-          This switch is harmless for x86.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><parameter>--enable-languages=c,c++</parameter></term>
-        <listitem>
-          <para>This option ensures that only the C and C++ compilers are built.
-          These are the only languages needed now.</para>
-        </listitem>
-      </varlistentry>
-
-    </variablelist>
-
-    <para>Compile GCC by running:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-    <screen><userinput remap="install">make install</userinput></screen>
-
-    <para>This build of GCC has installed a couple of internal system
-    headers.  Normally one of them, <filename>limits.h</filename>, would in turn
-    include the corresponding system <filename>limits.h</filename> header, in
-    this case, <filename>$LFS/usr/include/limits.h</filename>. However, at the
-    time of this build of gcc <filename>$LFS/usr/include/limits.h</filename>
-    does not exist, so the internal header that has just been installed is a
-    partial, self-contained file and does not include the extended features of
-    the system header. This is adequate for building glibc, but the full
-    internal header will be needed later.  Create a full version of the internal
-    header using a command that is identical to what the GCC build system does
-    in normal circumstances:</para>
-
-<screen><userinput remap="install">cd ..
-cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \
-  `dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/install-tools/include/limits.h</userinput></screen>
-  </sect2>
-
-  <sect2 role="content">
-    <title/>
-
-    <para>Details on this package are located in
-    <xref linkend="contents-gcc" role="."/></para>
-
-  </sect2>
-
-</sect1>

+ 0 - 120
chapter06/generalinstructions.xml

@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-  <!ENTITY % general-entities SYSTEM "../general.ent">
-  %general-entities;
-]>
-
-<sect1 id="ch-tools-generalinstructions">
-  <?dbhtml filename="generalinstructions.html"?>
-
-  <title>General Compilation Instructions</title>
-
-  <para>When building packages there are several assumptions made within
-  the instructions:</para>
-
-  <itemizedlist>
-
-  <listitem>
-    <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>
-  </listitem>
-
-  <listitem>
-    <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&mdash;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>
-  </listitem>
-
-  <listitem>
-    <para>Check one last time that the <envar>LFS</envar> environment variable
-    is set up properly:</para>
-
-<screen role="nodump"><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>
-  </listitem>
-
-  <listitem>
-
-    <para>Finally, two important items must be emphasized:</para>
-
-    <important>
-
-      <para>The build instructions assume that the <xref
-      linkend='ch-partitioning-hostreqs'/>, including symbolic links, have
-      been set properly:</para>
-
-      <itemizedlist role='important'>
-
-        <listitem override='bullet'><para><command>bash</command> is the shell
-        in use.</para></listitem>
-
-        <listitem override='bullet'><para><command>sh</command> is a symbolic
-        link to <command>bash</command>.</para></listitem>
-
-        <listitem override='bullet'><para><command>/usr/bin/awk</command> is a
-        symbolic link to <command>gawk</command>.</para></listitem>
-
-        <listitem override='bullet'><para><command>/usr/bin/yacc</command> is a
-        symbolic link to <command>bison</command> or a small script that
-        executes bison.</para></listitem>
-
-      </itemizedlist>
-    </important>
-
-    <important>
-      <para>To re-emphasize the build process:</para>
-
-      <orderedlist numeration="arabic" spacing="compact">
-        <listitem>
-          <para>Place all the sources and patches in a directory that will be
-          accessible from the chroot environment such as
-      	  <filename class="directory">/mnt/lfs/sources/</filename>.<!-- Do
-          <emphasis>not</emphasis> put sources in
-	  <filename class="directory">/mnt/lfs/tools/</filename>. --></para>
-        </listitem>
-        <listitem>
-          <para>Change to the sources directory.</para>
-        </listitem>
-        <listitem id='buildinstr' xreflabel='Package build instructions'>
-          <para>For each package:</para>
-          <orderedlist numeration="loweralpha" spacing="compact">
-            <listitem>
-              <para>Using the <command>tar</command> program, extract the package
-              to be built.  In Chapter&nbsp;5, ensure you are the <emphasis>lfs</emphasis>
-              user when extracting the package.</para>
-            </listitem>
-            <listitem>
-              <para>Change to the directory created when the package was
-              extracted.</para>
-            </listitem>
-            <listitem>
-              <para>Follow the book's instructions for building the package.</para>
-            </listitem>
-            <listitem>
-              <para>Change back to the sources directory.</para>
-            </listitem>
-            <listitem>
-              <para>Delete the extracted source directory unless instructed otherwise.</para>
-            </listitem>
-          </orderedlist>
-        </listitem>
-      </orderedlist>
-    </important>
-  </listitem>
-
-  </itemizedlist>
-
-</sect1>

+ 0 - 85
chapter06/gettext.xml

@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-  <!ENTITY % general-entities SYSTEM "../general.ent">
-  %general-entities;
-]>
-
-<sect1 id="ch-tools-gettext" role="wrap">
-  <?dbhtml filename="gettext.html"?>
-
-  <sect1info condition="script">
-    <productname>gettext</productname>
-    <productnumber>&gettext-version;</productnumber>
-    <address>&gettext-url;</address>
-  </sect1info>
-
-  <title>Gettext-&gettext-version;</title>
-
-  <indexterm zone="ch-tools-gettext">
-    <primary sortas="a-Gettext">Gettext</primary>
-    <secondary>tools</secondary>
-  </indexterm>
-
-  <sect2 role="package">
-    <title/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter08/gettext.xml"
-    xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
-
-    <segmentedlist>
-      <segtitle>&buildtime;</segtitle>
-      <segtitle>&diskspace;</segtitle>
-
-      <seglistitem>
-        <seg>&gettext-ch5-sbu;</seg>
-        <seg>&gettext-ch5-du;</seg>
-      </seglistitem>
-    </segmentedlist>
-
-  </sect2>
-
-  <sect2 role="installation">
-    <title>Installation of Gettext</title>
-
-    <para>For our temporary set of tools, we only need to install
-    three programs from Gettext.</para>
-
-    <para>Prepare Gettext for compilation:</para>
-
-<screen><userinput remap="configure">./configure --disable-shared</userinput></screen>
-
-    <variablelist>
-      <title>The meaning of the configure option:</title>
-
-      <varlistentry>
-        <term><parameter>--disable-shared</parameter></term>
-        <listitem>
-          <para>We do not need to install any of the shared Gettext libraries at
-          this time, therefore there is no need to build them.</para>
-        </listitem>
-      </varlistentry>
-
-    </variablelist>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the <command>msgfmt</command>, <command>msgmerge</command> and
-    <command>xgettext</command> programs:</para>
-
-<screen><userinput remap="install">cp -v gettext-tools/src/{msgfmt,msgmerge,xgettext} /usr/bin</userinput></screen>
-
-  </sect2>
-
-  <sect2 role="content">
-    <title/>
-
-    <para>Details on this package are located in
-    <xref linkend="contents-gettext" role="."/></para>
-
-  </sect2>
-
-</sect1>

+ 0 - 230
chapter06/glibc.xml

@@ -1,230 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-  <!ENTITY % general-entities SYSTEM "../general.ent">
-  %general-entities;
-]>
-
-<sect1 id="ch-tools-glibc" role="wrap">
-  <?dbhtml filename="glibc.html"?>
-
-  <sect1info condition="script">
-    <productname>glibc</productname>
-    <productnumber>&glibc-version;</productnumber>
-    <address>&glibc-url;</address>
-  </sect1info>
-
-  <title>Glibc-&glibc-version;</title>
-
-  <indexterm zone="ch-tools-glibc">
-    <primary sortas="a-Glibc">Glibc</primary>
-    <secondary>tools</secondary>
-  </indexterm>
-
-  <sect2 role="package">
-    <title/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/glibc.xml"
-    xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
-
-    <segmentedlist>
-      <segtitle>&buildtime;</segtitle>
-      <segtitle>&diskspace;</segtitle>
-
-      <seglistitem>
-        <seg>&glibc-ch5-sbu;</seg>
-        <seg>&glibc-ch5-du;</seg>
-      </seglistitem>
-    </segmentedlist>
-
-  </sect2>
-
-  <sect2 role="installation">
-    <title>Installation of Glibc</title>
-
-    <para>First, create two symbolic links, which are needed for proper
-    operation of the dynamic library loader:</para>
-
-<screen><userinput remap="pre">ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64
-ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3</userinput></screen>
-
-    <para>Some of the Glibc programs use the non-FHS compliant
-    <filename class="directory">/var/db</filename> directory to store their
-    runtime data. Apply the following patch to make such programs store their
-    runtime data in the FHS-compliant locations:</para>
-
-<screen><userinput remap="pre">patch -Np1 -i ../glibc-&glibc-version;-fhs-1.patch</userinput></screen>
-
-    <para>The Glibc documentation recommends building Glibc 
-    in a dedicated build directory:</para>
-
-<screen><userinput remap="pre">mkdir -v build
-cd       build</userinput></screen>
-
-    <para>Next, prepare Glibc for compilation:</para>
-
-<screen><userinput remap="configure">../configure                             \
-      --prefix=/usr                      \
-      --host=$LFS_TGT                    \
-      --build=$(../scripts/config.guess) \
-      --enable-kernel=&min-kernel;                \
-      --with-headers=$LFS/usr/include    \
-      libc_cv_slibdir=/lib</userinput></screen>
-<!--
-      libc_cv_forced_unwind=yes          \
-      libc_cv_c_cleanup=yes</userinput></screen> -->
-
-    <variablelist>
-      <title>The meaning of the configure options:</title>
-
-      <varlistentry>
-        <term><parameter>--host=$LFS_TGT, --build=$(../scripts/config.guess)</parameter></term>
-        <listitem>
-          <para>The combined effect of these switches is that Glibc's build system
-          configures itself to be cross-compiled, using the cross-linker and
-          cross-compiler in <filename class="directory">/tools</filename>.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><parameter>--enable-kernel=&min-kernel;</parameter></term>
-        <listitem>
-          <para>This tells Glibc to compile the library with support
-          for &min-kernel; and later Linux kernels.  Workarounds for older
-          kernels are not enabled.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><parameter>--with-headers=$LFS/usr/include</parameter></term>
-        <listitem>
-          <para>This tells Glibc to compile itself against the headers recently
-          installed to the usr/include directory, so that it knows exactly what
-          features the kernel has and can optimize itself accordingly.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><parameter>libc_cv_slibdir=/lib</parameter></term>
-        <listitem>
-          <para>This ensures that the library is installed in /lib instead
-          of the default /lib64 on 64 bit machines.</para>
-        </listitem>
-      </varlistentry>
-<!--
-      <varlistentry>
-        <term><parameter>libc_cv_c_cleanup=yes</parameter></term>
-        <listitem>
-          <para>Similarly, we pass libc_cv_c_cleanup=yes through to the
-          <command>configure</command> script so that the test is skipped and C
-          cleanup handling support is configured.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><parameter>libc_cv_ctors_header=yes</parameter></term>
-        <listitem>
-          <para>Similarly, we pass libc_cv_ctors_header=yes through to the
-          <command>configure</command> script so that the test is skipped and
-          gcc constructor support is configured.</para>
-        </listitem>
-      </varlistentry>-->
-
-    </variablelist>
-
-    <para>During this stage the following warning might appear:</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. This <command>msgfmt</command> program is part of the
-    Gettext package which the host distribution should provide.</para>
-
-    <note><para>There have been reports that this package may fail when 
-    building as a "parallel make".  If this occurs, rerun the make command
-    with a "-j1" option.</para></note>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make DESTDIR=$LFS install</userinput></screen>
-
-    <variablelist>
-      <title>The meaning of the <command>make install</command> option:</title>
-
-      <varlistentry>
-        <term><parameter>DESTDIR=$LFS</parameter></term>
-        <listitem>
-          <para>The <envar>DESTDIR</envar> make variable is used by almost all
-          packages to define the location where the package should be
-          installed. If it is not set, it defaults to the root (<filename
-          class="directory">/</filename>) directory. Here we specify that
-          the package be installed in <filename class="directory">$LFS
-          </filename>, which will become the root after <xref linkend=
-          "ch-tools-chroot"/>.</para>
-        </listitem>
-      </varlistentry>
-
-    </variablelist>
-
-    <caution>
-      <para>At this point, it is imperative to stop and ensure that the basic
-      functions (compiling and linking) of the new toolchain are working as
-      expected. To perform a sanity check, run the following commands:</para>
-
-<screen><userinput>echo 'int main(){}' &gt; dummy.c
-$LFS_TGT-gcc dummy.c
-readelf -l a.out | grep '/ld-linux'</userinput></screen>
-
-      <para>If everything is working correctly, there should be no errors,
-      and the output of the last command will be of the form:</para>
-
-<screen><computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput></screen>
-
-      <para>Note that for 32-bit machines, the interpreter name will be
-      <filename>/lib/ld-linux.so.2</filename>.</para>
-
-      <para>If the output is not shown as above or there was no output at all,
-      then something is wrong. Investigate and retrace the steps to find out
-      where the problem is and correct it. This issue must be resolved before
-      continuing on.</para>
-
-      <para>Once all is well, clean up the test files:</para>
-
-<screen><userinput>rm -v dummy.c a.out</userinput></screen>
-
-    </caution>
-
-    <note><para>Building packages in the next sections will serve as an
-    additional check that the toolchain has been built properly. If some
-    package, especially binutils-pass2 or gcc-pass2, fails to build, it is
-    an indication that something has gone wrong with the
-    previous Binutils, GCC, or Glibc installations.</para></note>
-
-    <para>Now that our cross-toolchain is complete, finalize the installation
-    of the limits.h header. For doing so, run an utility provided by the GCC
-    developers:</para>
-
-<screen><userinput>$LFS/tools/libexec/gcc/$LFS_TGT/&gcc-version;/install-tools/mkheaders</userinput></screen>
-
-  </sect2>
-
-  <sect2 role="content">
-    <title/>
-
-    <para>Details on this package are located in
-    <xref linkend="contents-glibc" role="."/></para>
-
-  </sect2>
-
-</sect1>

+ 0 - 115
chapter06/kernfs.xml

@@ -1,115 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-  <!ENTITY % general-entities SYSTEM "../general.ent">
-  %general-entities;
-]>
-
-<sect1 id="ch-tools-kernfs">
-  <?dbhtml filename="kernfs.html"?>
-
-  <title>Preparing Virtual Kernel File Systems</title>
-
-  <indexterm zone="ch-tools-kernfs">
-    <primary sortas="e-/dev/">/dev/*</primary>
-  </indexterm>
-
-    <para>Various file systems exported by the kernel are used to communicate to
-    and from the kernel itself. These file systems are virtual in that no disk
-    space is used for them. The content of the file systems resides in
-    memory.</para>
-
-    <para>Begin by creating directories onto which the file systems will be
-    mounted:</para>
-
-<screen><userinput>mkdir -pv $LFS/{dev,proc,sys,run}</userinput></screen>
-
-  <sect2>
-    <title>Creating Initial Device Nodes</title>
-
-    <para>When the kernel boots the system, it requires the presence of a few
-    device nodes, in particular the <filename
-    class="devicefile">console</filename> and <filename
-    class="devicefile">null</filename> devices. The device nodes must be created
-    on the hard disk so that they are available before <command>udevd</command>
-    has been started, and additionally when Linux is started with
-    <parameter>init=/bin/bash</parameter>. Create the devices by running the
-    following commands:</para>
-
-<screen><userinput>mknod -m 600 $LFS/dev/console c 5 1
-mknod -m 666 $LFS/dev/null c 1 3</userinput></screen>
-
-  </sect2>
-
-  <sect2 id="ch-system-bindmount">
-    <title>Mounting and Populating /dev</title>
-
-      <para>The recommended method of populating the <filename
-      class="directory">/dev</filename> directory with devices is to mount a
-      virtual filesystem (such as <systemitem
-      class="filesystem">tmpfs</systemitem>) on the <filename
-      class="directory">/dev</filename> directory, and allow the devices to be
-      created dynamically on that virtual filesystem as they are detected or
-      accessed. Device creation is generally done during the boot process
-      by Udev. Since this new system does not yet have Udev and has not yet
-      been booted, it is necessary to mount and populate <filename
-      class="directory">/dev</filename> manually. This is accomplished by bind
-      mounting the host system's <filename class="directory">/dev</filename>
-      directory. A bind mount is a special type of mount that allows you to
-      create a mirror of a directory or mount point to some other location. Use
-      the following command to achieve this:</para>
-
-<screen><userinput>mount -v --bind /dev $LFS/dev</userinput></screen>
-
-  </sect2>
-
-  <sect2 id="ch-system-kernfsmount">
-    <title>Mounting Virtual Kernel File Systems</title>
-
-      <para>Now mount the remaining virtual kernel filesystems:</para>
-
-<screen><userinput>mount -v --bind /dev/pts $LFS/dev/pts
-mount -vt proc proc $LFS/proc
-mount -vt sysfs sysfs $LFS/sys
-mount -vt tmpfs tmpfs $LFS/run</userinput></screen>
-
-    <variablelist>
-      <title>The meaning of the mount options for devpts:</title>
-
-      <varlistentry>
-        <term><parameter>gid=5</parameter></term>
-        <listitem>
-          <para>This ensures that all devpts-created device nodes are owned by
-          group ID 5.  This is the ID we will use later on for the <systemitem
-          class="groupname">tty</systemitem> group.  We use the group ID instead
-          of a name, since the host system might use a different ID for its
-          <systemitem class="groupname">tty</systemitem> group.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><parameter>mode=0620</parameter></term>
-        <listitem>
-          <para>This ensures that all devpts-created device nodes have mode 0620
-          (user readable and writable, group writable).  Together with the
-          option above, this ensures that devpts will create device nodes that
-          meet the requirements of grantpt(), meaning the Glibc
-          <command>pt_chown</command> helper binary (which is not installed by
-          default) is not necessary.</para>
-        </listitem>
-      </varlistentry>
-
-    </variablelist>
-
-      <para>In some host systems, <filename>/dev/shm</filename> is a
-      symbolic link to <filename class="directory">/run/shm</filename>.
-      The /run tmpfs was mounted above so in this case only a 
-      directory needs to be created.</para>
-
-<screen><userinput>if [ -h $LFS/dev/shm ]; then
-  mkdir -pv $LFS/$(readlink $LFS/dev/shm)
-fi</userinput></screen>
-
-  </sect2>
-
-</sect1>

+ 0 - 114
chapter06/libstdc++-pass2.xml

@@ -1,114 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-  <!ENTITY % general-entities SYSTEM "../general.ent">
-  %general-entities;
-]>
-
-<sect1 id="ch-tools-libstdcpp-pass2" role="wrap">
-  <?dbhtml filename="gcc-libstdc++-pass2.html"?>
-
-  <sect1info condition="script">
-    <productname>gcc-libstdc++</productname>
-    <productnumber>&gcc-version;</productnumber>
-    <address>&gcc-url;</address>
-  </sect1info>
-
-  <title>Libstdc++ from GCC-&gcc-version;, Pass 2</title>
-
-  <indexterm zone="ch-tools-libstdcpp-pass2">
-    <primary sortas="a-GCC">GCC</primary>
-    <secondary>tools, libstdc++ pass 2</secondary>
-  </indexterm>
-
-  <sect2 role="package">
-    <title/>
-
-    <para>Again, when building <xref linkend="ch-tools-gcc-pass2"/>, we had to
-    defer the installation of the C++ standard library, because no suitable
-    compiler was available to compile it: we could not use the compiler
-    installed, because this compiler is a native
-    compiler, and should not be used outside of chroot without being at
-    risk of polluting the build with some host components.</para>
-
-    <segmentedlist>
-      <segtitle>&buildtime;</segtitle>
-      <segtitle>&diskspace;</segtitle>
-
-        <!-- TODO -->
-      <seglistitem>
-        <seg>&libstdcpp-ch5-sbu;</seg>
-        <seg>&libstdcpp-ch5-du;</seg>
-      </seglistitem>
-    </segmentedlist>
-
-  </sect2>
-
-  <sect2 role="installation">
-    <title>Installation of Target Libstdc++</title>
-
-    <note>
-      <para><application>Libstdc++</application> is part of the GCC sources.
-      You should first unpack the GCC tarball and change to the
-      <filename>gcc-&gcc-version;</filename> directory.</para>
-    </note>
-
-    <para>Create a link which exists when building Libstdc++ in the gcc
-    tree:</para>
-
-<screen><userinput remap="pre">ln -s gthr-posix.h libgcc/gthr-default.h</userinput></screen>
-
-    <para>Create a separate build directory for Libstdc++ and enter it:</para>
-
-<screen><userinput remap="pre">mkdir -v build
-cd       build</userinput></screen>
-
-    <para>Prepare Libstdc++ for compilation:</para>
-
-<screen><userinput remap="configure">../libstdc++-v3/configure           \
-    CXXFLAGS="-g -O2 -D_GNU_SOURCE" \
-    --prefix=/usr                   \
-    --disable-multilib              \
-    --disable-nls                   \
-    --disable-libstdcxx-pch</userinput></screen>
-
-    <variablelist>
-      <title>The meaning of the configure options:</title>
-
-      <varlistentry>
-        <term><parameter>CXXFLAGS="-g -O2 -D_GNU_SOURCE"</parameter></term>
-        <listitem>
-          <para>Those flags are passed by the top level Makefile when doing
-	  a full build of GCC.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><parameter>--disable-libstdcxx-pch</parameter></term>
-        <listitem>
-          <para>This switch prevents the installation of precompiled
-          include files, which are not needed at this stage.</para>
-        </listitem>
-      </varlistentry>
-
-    </variablelist>
-
-    <para>Compile libstdc++ by running:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the library:</para>
-
-<screen><userinput remap="install">make install</userinput></screen>
-
-  </sect2>
-
-  <sect2 role="content">
-    <title/>
-
-    <para>Details on this package are located in
-    <xref linkend="contents-gcc" role="."/></para>
-
-  </sect2>
-
-</sect1>

+ 0 - 122
chapter06/libstdc++.xml

@@ -1,122 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-  <!ENTITY % general-entities SYSTEM "../general.ent">
-  %general-entities;
-]>
-
-<sect1 id="ch-tools-libstdcpp-pass1" role="wrap">
-  <?dbhtml filename="gcc-libstdc++-pass1.html"?>
-
-  <sect1info condition="script">
-    <productname>gcc-libstdc++</productname>
-    <productnumber>&gcc-version;</productnumber>
-    <address>&gcc-url;</address>
-  </sect1info>
-
-  <title>Libstdc++ from GCC-&gcc-version;, Pass 1</title>
-
-  <indexterm zone="ch-tools-libstdcpp-pass1">
-    <primary sortas="a-GCC">GCC</primary>
-    <secondary>tools, libstdc++ pass 1</secondary>
-  </indexterm>
-
-  <sect2 role="package">
-    <title/>
-
-    <para>Libstdc++ is the standard C++ library. It is needed 
-    to compile C++ code
-    (part of GCC is written in C++), but we had to defer its installation
-    when we built <xref linkend="ch-tools-gcc-pass1"/>
-    because it depends on glibc, which was not yet available in the target
-    directory.
-    </para>
-
-    <segmentedlist>
-      <segtitle>&buildtime;</segtitle>
-      <segtitle>&diskspace;</segtitle>
-
-      <seglistitem>
-        <seg>&libstdcpp-ch5-sbu;</seg>
-        <seg>&libstdcpp-ch5-du;</seg>
-      </seglistitem>
-    </segmentedlist>
-
-  </sect2>
-
-  <sect2 role="installation">
-    <title>Installation of Target Libstdc++</title>
-
-    <note>
-      <para><application>Libstdc++</application> is part of the GCC sources.
-      You should first unpack the GCC tarball and change to the
-      <filename>gcc-&gcc-version;</filename> directory.</para>
-    </note>
-
-    <para>Create a separate build directory for Libstdc++ and enter it:</para>
-
-<screen><userinput remap="pre">mkdir -v build
-cd       build</userinput></screen>
-
-    <para>Prepare Libstdc++ for compilation:</para>
-
-<screen><userinput remap="configure">../libstdc++-v3/configure           \
-    --host=$LFS_TGT                 \
-    --build=$(../config.guess)      \
-    --prefix=/usr                   \
-    --disable-multilib              \
-    --disable-nls                   \
-    --disable-libstdcxx-pch         \
-    --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/&gcc-version;</userinput></screen>
-
-    <variablelist>
-      <title>The meaning of the configure options:</title>
-
-      <varlistentry>
-        <term><parameter>--host=...</parameter></term>
-        <listitem>
-          <para>Indicates to use the cross compiler we have just built
-          instead of the one in <filename>/usr/bin</filename>.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><parameter>--disable-libstdcxx-pch</parameter></term>
-        <listitem>
-          <para>This switch prevents the installation of precompiled
-          include files, which are not needed at this stage.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><parameter>--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/&gcc-version;</parameter></term>
-        <listitem>
-          <para>This is the location where the standard include files are
-          searched by the C++ compiler. In a normal build, this information
-          is automatically passed to the Libstdc++ <command>configure</command>
-          options from the top level directory. In our case, this information
-          must be explicitly given.</para>
-        </listitem>
-      </varlistentry>
-
-    </variablelist>
-
-    <para>Compile libstdc++ by running:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the library:</para>
-
-<screen><userinput remap="install">make DESTDIR=$LFS install</userinput></screen>
-
-  </sect2>
-
-  <sect2 role="content">
-    <title/>
-
-    <para>Details on this package are located in
-    <xref linkend="contents-gcc" role="."/></para>
-
-  </sect2>
-
-</sect1>

+ 0 - 207
chapter06/linux-headers.xml

@@ -1,207 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-  <!ENTITY % general-entities SYSTEM "../general.ent">
-  %general-entities;
-]>
-
-<sect1 id="ch-tools-linux-headers" role="wrap">
-  <?dbhtml filename="linux-headers.html"?>
-
-  <sect1info condition="script">
-    <productname>linux-headers</productname>
-    <productnumber>&linux-version;</productnumber>
-    <address>&linux-url;</address>
-  </sect1info>
-
-  <title>Linux-&linux-version; API Headers</title>
-
-  <indexterm zone="ch-tools-linux-headers">
-    <primary sortas="a-Linux">Linux</primary>
-    <secondary>tools, API headers</secondary>
-  </indexterm>
-
-  <sect2 role="package">
-    <title/>
-
-    <para>The Linux API Headers (in linux-&linux-version;.tar.xz) expose the
-    kernel's API for use by Glibc.</para>
-
-    <segmentedlist>
-      <segtitle>&buildtime;</segtitle>
-      <segtitle>&diskspace;</segtitle>
-
-      <seglistitem>
-        <seg>&linux-headers-ch5-sbu;</seg>
-        <seg>&linux-headers-ch5-du;</seg>
-      </seglistitem>
-    </segmentedlist>
-
-  </sect2>
-
-  <sect2 role="installation">
-    <title>Installation of Linux API Headers</title>
-
-    <para>The Linux kernel needs to expose an Application Programming Interface
-    (API) for the system's C library (Glibc in LFS) to use.  This is done
-    by way of sanitizing various C header files that are shipped in the Linux
-    kernel source tarball.</para>
-
-    <para>Make sure there are no stale files embedded in the package:</para>
-
-<screen><userinput remap="pre">make mrproper</userinput></screen>
-
-    <para>Now extract the user-visible kernel headers from the source.
-    The recommended make target <quote>headers_install</quote> cannot be
-    used, because it requires <application>rsync</application>, which may not
-    be available. The headers are first placed in
-    <filename class="directory">./usr</filename>, then copied to the needed
-    location.</para>
-
-<screen><userinput remap="make">make headers
-find usr/include -name '.*' -delete
-rm usr/include/Makefile
-</userinput><userinput remap="install">cp -rv usr/include $LFS/usr</userinput></screen>
-
-  </sect2>
-
-  <sect2 id="contents-linux-headers" role="content">
-    <title>Contents of Linux API Headers</title>
-
-    <segmentedlist>
-      <segtitle>Installed headers</segtitle>
-      <segtitle>Installed directories</segtitle>
-
-      <seglistitem>
-        <seg>/usr/include/asm/*.h, /usr/include/asm-generic/*.h,
-        /usr/include/drm/*.h, /usr/include/linux/*.h, /usr/include/misc/*.h,
-        /usr/include/mtd/*.h, /usr/include/rdma/*.h, /usr/include/scsi/*.h, 
-        /usr/include/sound/*.h, /usr/include/video/*.h, 
-        and /usr/include/xen/*.h</seg>
-        <seg>/usr/include/asm, /usr/include/asm-generic, /usr/include/drm,
-        /usr/include/linux, /usr/include/misc, /usr/include/mtd, 
-        /usr/include/rdma, /usr/include/scsi, /usr/include/sound, 
-        /usr/include/video, and /usr/include/xen</seg>
-      </seglistitem>
-    </segmentedlist>
-
-    <variablelist>
-      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
-      <?dbfo list-presentation="list"?>
-      <?dbhtml list-presentation="table"?>
-
-      <varlistentry id="asm">
-        <term><filename class="headerfile">/usr/include/asm/*.h</filename></term>
-        <listitem>
-          <para>The Linux API ASM Headers</para>
-          <indexterm zone="ch-tools-linux-headers asm">
-            <primary sortas="e-/usr/include/asm/*.h">/usr/include/asm/*.h</primary>
-          </indexterm>
-        </listitem>
-      </varlistentry>
-
-     <varlistentry id="asm-generic">
-        <term><filename class="headerfile">/usr/include/asm-generic/*.h</filename></term>
-        <listitem>
-          <para>The Linux API ASM Generic Headers</para>
-          <indexterm zone="ch-tools-linux-headers asm-generic">
-            <primary sortas="e-/usr/include/asm-generic/*.h">/usr/include/asm-generic/*.h</primary>
-          </indexterm>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry id="drm">
-        <term><filename class="headerfile">/usr/include/drm/*.h</filename></term>
-        <listitem>
-          <para>The Linux API DRM Headers</para>
-          <indexterm zone="ch-tools-linux-headers drm">
-            <primary sortas="e-/usr/include/drm/*.h">/usr/include/drm/*.h</primary>
-          </indexterm>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry id="linux">
-        <term><filename class="headerfile">/usr/include/linux/*.h</filename></term>
-        <listitem>
-          <para>The Linux API Linux Headers</para>
-          <indexterm zone="ch-tools-linux-headers linux">
-            <primary sortas="e-/usr/include/linux/*.h">/usr/include/linux/*.h</primary>
-          </indexterm>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry id="misc">
-        <term><filename class="headerfile">/usr/include/misc/*.h</filename></term>
-        <listitem>
-          <para>The Linux API Miscellaneous Headers</para>
-          <indexterm zone="ch-tools-linux-headers misc">
-            <primary sortas="e-/usr/include/misc/*.h">/usr/include/misc/*.h</primary>
-          </indexterm>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry id="mtd">
-        <term><filename class="headerfile">/usr/include/mtd/*.h</filename></term>
-        <listitem>
-          <para>The Linux API MTD Headers</para>
-          <indexterm zone="ch-tools-linux-headers mtd">
-            <primary sortas="e-/usr/include/mtd/*.h">/usr/include/mtd/*.h</primary>
-          </indexterm>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry id="rdma">
-        <term><filename class="headerfile">/usr/include/rdma/*.h</filename></term>
-        <listitem>
-          <para>The Linux API RDMA Headers</para>
-          <indexterm zone="ch-tools-linux-headers rdma">
-            <primary sortas="e-/usr/include/rdma/*.h">/usr/include/rdma/*.h</primary>
-         </indexterm>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry id="scsi">
-        <term><filename class="headerfile">/usr/include/scsi/*.h</filename></term>
-        <listitem>
-          <para>The Linux API SCSI Headers</para>
-          <indexterm zone="ch-tools-linux-headers scsi">
-            <primary sortas="e-/usr/include/scsi/*.h">/usr/include/scsi/*.h</primary>
-          </indexterm>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry id="sound">
-        <term><filename class="headerfile">/usr/include/sound/*.h</filename></term>
-        <listitem>
-          <para>The Linux API Sound Headers</para>
-          <indexterm zone="ch-tools-linux-headers sound">
-           <primary sortas="e-/usr/include/sound/*.h">/usr/include/sound/*.h</primary>
-          </indexterm>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry id="video">
-        <term><filename class="headerfile">/usr/include/video/*.h</filename></term>
-        <listitem>
-          <para>The Linux API Video Headers</para>
-          <indexterm zone="ch-tools-linux-headers video">
-            <primary sortas="e-/usr/include/video/*.h">/usr/include/video/*.h</primary>
-          </indexterm>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry id="xen">
-        <term><filename class="headerfile">/usr/include/xen/*.h</filename></term>
-        <listitem>
-          <para>The Linux API Xen Headers</para>
-          <indexterm zone="ch-tools-linux-headers xen">
-            <primary sortas="e-/usr/include/xen/*.h">/usr/include/xen/*.h</primary>
-          </indexterm>
-        </listitem>
-      </varlistentry>
-
-    </variablelist>
-
-  </sect2>
-
-</sect1>

+ 0 - 79
chapter06/perl.xml

@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-  <!ENTITY % general-entities SYSTEM "../general.ent">
-  %general-entities;
-]>
-
-<sect1 id="ch-tools-perl" role="wrap">
-  <?dbhtml filename="perl.html"?>
-
-  <sect1info condition="script">
-    <productname>perl</productname>
-    <productnumber>&perl-version;</productnumber>
-    <address>&perl-url;</address>
-  </sect1info>
-
-  <title>Perl-&perl-version;</title>
-
-  <indexterm zone="ch-tools-perl">
-    <primary sortas="a-Perl">Perl</primary>
-    <secondary>tools</secondary>
-  </indexterm>
-
-  <sect2 role="package">
-    <title/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/perl.xml"
-    xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
-
-    <segmentedlist>
-      <segtitle>&buildtime;</segtitle>
-      <segtitle>&diskspace;</segtitle>
-
-      <seglistitem>
-        <seg>&perl-ch5-sbu;</seg>
-        <seg>&perl-ch5-du;</seg>
-      </seglistitem>
-    </segmentedlist>
-
-  </sect2>
-
-  <sect2 role="installation">
-    <title>Installation of Perl</title>
-
-    <para>Prepare Perl for compilation:</para>
-
-<screen><userinput remap="configure">sh Configure -des -Dprefix=/usr</userinput></screen>
-
-    <variablelist>
-      <title>The meaning of the new Configure options:</title>
-      <varlistentry>
-        <term><parameter>-des</parameter></term>
-        <listitem>
-          <para>This is a combination of three options: -d uses defaults for 
-          all items; -e ensures completion of all tasks; -s silences
-          non-essential output.</para>
-        </listitem>
-      </varlistentry>
-
-    </variablelist>
-
-    <para>Build the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-<screen><userinput remap="install">make install</userinput></screen>
-
-  </sect2>
-
-  <sect2 role="content">
-    <title/>
-
-    <para>Details on this package are located in
-    <xref linkend="contents-perl" role="."/></para>
-
-  </sect2>
-
-</sect1>

+ 0 - 88
chapter06/python.xml

@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-  <!ENTITY % general-entities SYSTEM "../general.ent">
-  %general-entities;
-]>
-
-<sect1 id="ch-system-Python-temp" role="wrap">
-  <?dbhtml filename="Python-temp.html"?>
-
-  <sect1info condition="script">
-    <productname>Python</productname>
-    <productnumber>&python-version;</productnumber>
-    <address>&python-url;</address>
-  </sect1info>
-
-  <title>Python-&python-version;</title>
-
-  <indexterm zone="ch-system-Python-temp">
-    <primary sortas="a-Python">Python</primary>
-    <secondary>temporary</secondary>
-  </indexterm>
-
-  <sect2 role="package">
-    <title/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter08/python.xml"
-    xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
-
-    <segmentedlist>
-    <segtitle>&buildtime;</segtitle>
-      <segtitle>&diskspace;</segtitle>
-
-      <seglistitem>
-        <seg>&python-ch5-sbu;</seg>
-        <seg>&python-ch5-du;</seg>
-      </seglistitem>
-    </segmentedlist>
-
-  </sect2>
-
-  <sect2 role="installation">
-    <title>Installation of Python</title>
-
-    <note>
-      <para>There are two package files whose name starts with
-      <quote>python</quote>. The one to extract from is
-      <filename>Python-&python-version;.tar.xz</filename> (notice the
-      uppercase first letter).</para>
-    </note>
-
-    <para>Prepare Python for compilation:</para>
-
-<screen><userinput remap="configure">./configure --prefix=/usr --without-ensurepip</userinput></screen>
-
-    <variablelist>
-      <title>The meaning of the configure option:</title>
-
-      <varlistentry>
-        <term><parameter>--without-ensurepip</parameter></term>
-        <listitem>
-          <para>This switch disables the Python package installer, which is not
-          needed at this stage.</para>
-        </listitem>
-      </varlistentry>
-
-    </variablelist>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make install</userinput></screen>
-
-  </sect2>
-
-  <sect2 role="content">
-    <title/>
-
-    <para>Details on this package are located in
-    <xref linkend="contents-python" role="."/></para>
-
-  </sect2>
-
-</sect1>

+ 0 - 191
chapter06/tcl.xml

@@ -1,191 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-  <!ENTITY % general-entities SYSTEM "../general.ent">
-  %general-entities;
-  <!ENTITY tdbc-ver          "1.1.1">
-  <!ENTITY itcl-ver          "4.2.0">
-]>
-
-<sect1 id="ch-tools-tcl" role="wrap">
-  <?dbhtml filename="tcl.html"?>
-
-  <sect1info condition="script">
-    <productname>tcl</productname>
-    <productnumber>&tcl-version;</productnumber>
-    <address>&tcl-url;</address>
-  </sect1info>
-
-  <title>Tcl-&tcl-version;</title>
-
-  <indexterm zone="ch-tools-tcl">
-    <primary sortas="a-Tcl">Tcl</primary>
-  </indexterm>
-
-  <sect2 role="package">
-    <title/>
-
-    <para>The <application>Tcl</application> package contains the Tool Command Language,
-    a robust general-purpose scripting language. The <application>Expect</application> package
-    is written in the <application>Tcl</application> language.</para>
-
-    <segmentedlist>
-      <segtitle>&buildtime;</segtitle>
-      <segtitle>&diskspace;</segtitle>
-
-      <seglistitem>
-        <seg>&tcl-ch5-sbu;</seg>
-        <seg>&tcl-ch5-du;</seg>
-      </seglistitem>
-    </segmentedlist>
-
-  </sect2>
-
-  <sect2 role="installation">
-    <title>Installation of Tcl</title>
-
-    <para>This package and the next two (Expect and DejaGNU) are
-    installed to support running the test suites for GCC and Binutils and other
-    packages.  Installing three packages for testing purposes may seem
-    excessive, but it is very reassuring, if not essential, to know that the
-    most important tools are working properly. These packages are required
-    to run the test suites in <xref linkend="chapter-building-system"/>.</para>
-
-    <para>Note that the Tcl package used here is a minimal version needed
-    to run the LFS tests.  For the full package, see the  
-    <ulink url='&blfs-book;general/tcl.html'>BLFS Tcl procedures</ulink>.</para>
-
-    <para>Prepare Tcl for compilation:</para>
-
-<screen><userinput remap="configure">SRCDIR=$(pwd)
-cd unix
-./configure --prefix=/usr           \
-            --mandir=/usr/share/man \
-            $([ "$(uname -m)" = x86_64 ] &amp;&amp; echo --enable-64bit)</userinput></screen>
-
-    <variablelist>
-      <title>The meaning of the configure options:</title>
-
-      <varlistentry>
-        <term><parameter>$([ "$(uname -m)" = x86_64 ] &amp;&amp; echo --enable-64bit)</parameter></term>
-        <listitem>
-          <para>The construct <parameter>$(&lt;shell command&gt;)</parameter>
-          is replaced by the output of the chell command.  Here this output is
-          empty if running on a 32 bit machine, and is
-          <parameter>--enable-64bit</parameter> if running on a 64 bit machine.
-          </para>
-        </listitem>
-      </varlistentry>
-
-    </variablelist>
-
-    <para>Build the package:</para>
-
-<screen><userinput remap="make">make
-
-sed -e "s|$SRCDIR/unix|/usr/lib|" \
-    -e "s|$SRCDIR|/usr/include|"  \
-    -i tclConfig.sh
-
-sed -e "s|$SRCDIR/unix/pkgs/tdbc&tdbc-ver;|/usr/lib/tdbc&tdbc-ver;|" \
-    -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;/generic|/usr/include|"    \
-    -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;/library|/usr/lib/tcl8.6|" \
-    -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;|/usr/include|"            \
-    -i pkgs/tdbc&tdbc-ver;/tdbcConfig.sh
-
-sed -e "s|$SRCDIR/unix/pkgs/itcl&itcl-ver;|/usr/lib/itcl&itcl-ver;|" \
-    -e "s|$SRCDIR/pkgs/itcl&itcl-ver;/generic|/usr/include|"    \
-    -e "s|$SRCDIR/pkgs/itcl&itcl-ver;|/usr/include|"            \
-    -i pkgs/itcl&itcl-ver;/itclConfig.sh
-
-unset SRCDIR</userinput></screen>
-
-    <para>The various <quote>sed</quote> after the <quote>make</quote> command
-    remove references to the build directory from various configuration files,
-    and replaces them with the install directory. This is not mandatory
-    for the remaining of LFS, but may be needed in case a package built later
-    uses Tcl.</para>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make install</userinput></screen>
-
-    <para>Make the installed library writable so debugging symbols can
-    be removed later:</para>
-
-<screen><userinput remap="install">chmod -v u+w /usr/lib/libtcl&tcl-major-version;.so</userinput></screen>
-
-    <para>Install Tcl's headers. The next package, Expect, requires them
-    to build.</para>
-
-<screen><userinput remap="install">make install-private-headers</userinput></screen>
-
-    <para>Now make a necessary symbolic link:</para>
-
-<screen><userinput remap="install">ln -sfv tclsh&tcl-major-version; /usr/bin/tclsh</userinput></screen>
-
-  </sect2>
-
-  <sect2 id="contents-tcl" role="content">
-    <title>Contents of Tcl</title>
-
-    <segmentedlist>
-      <segtitle>Installed programs</segtitle>
-      <segtitle>Installed library</segtitle>
-
-      <seglistitem>
-        <seg>tclsh (link to tclsh&tcl-major-version;) and tclsh&tcl-major-version;</seg>
-        <seg>libtcl&tcl-major-version;.so, libtclstub&tcl-major-version;.a</seg>
-      </seglistitem>
-    </segmentedlist>
-
-    <variablelist>
-      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
-      <?dbfo list-presentation="list"?>
-      <?dbhtml list-presentation="table"?>
-
-      <varlistentry id="tclsh&tcl-major-version;">
-        <term><command>tclsh&tcl-major-version;</command></term>
-        <listitem>
-          <para>The Tcl command shell</para>
-          <indexterm zone="ch-tools-tcl tclsh&tcl-major-version;">
-            <primary sortas="b-tclsh&tcl-major-version;">tclsh&tcl-major-version;</primary>
-          </indexterm>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry id="tclsh">
-        <term><command>tclsh</command></term>
-        <listitem>
-          <para>A link to tclsh&tcl-major-version;</para>
-          <indexterm zone="ch-tools-tcl tclsh">
-            <primary sortas="b-tclsh">tclsh</primary>
-          </indexterm>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry id="libtcl&tcl-major-version;.so">
-        <term><filename class="libraryfile">libtcl&tcl-major-version;.so</filename></term>
-        <listitem>
-          <para>The Tcl library</para>
-          <indexterm zone="ch-tools-tcl libtcl&tcl-major-version;.so">
-            <primary sortas="c-libtcl&tcl-major-version;.so">libtcl&tcl-major-version;.so</primary>
-          </indexterm>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry id="libtclstub&tcl-major-version;.a">
-        <term><filename class="libraryfile">libtclstub&tcl-major-version;.a</filename></term>
-        <listitem>
-          <para>The Tcl Stub library</para>
-          <indexterm zone="ch-tools-tcl libtclstub&tcl-major-version;.a">
-            <primary sortas="c-libtclstub&tcl-major-version;.a">libtclstub&tcl-major-version;.a</primary>
-          </indexterm>
-        </listitem>
-      </varlistentry>
-
-    </variablelist>
-
-  </sect2>
-
-</sect1>

+ 0 - 74
chapter06/texinfo.xml

@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-  <!ENTITY % general-entities SYSTEM "../general.ent">
-  %general-entities;
-]>
-
-<sect1 id="ch-system-texinfo-temp" role="wrap">
-  <?dbhtml filename="texinfo-temp.html"?>
-
-  <sect1info condition="script">
-    <productname>texinfo</productname>
-    <productnumber>&texinfo-version;</productnumber>
-    <address>&texinfo-url;</address>
-  </sect1info>
-
-  <title>Texinfo-&texinfo-version;</title>
-
-  <indexterm zone="ch-system-texinfo-temp">
-    <primary sortas="a-Texinfo">Texinfo</primary>
-    <secondary>temporary</secondary>
-  </indexterm>
-
-  <sect2 role="package">
-    <title/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter08/texinfo.xml"
-    xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
-
-    <segmentedlist>
-      <segtitle>&buildtime;</segtitle>
-      <segtitle>&diskspace;</segtitle>
-
-      <seglistitem>
-        <seg>&texinfo-ch5-sbu;</seg>
-        <seg>&texinfo-ch5-du;</seg>
-      </seglistitem>
-    </segmentedlist>
-
-  </sect2>
-
-  <sect2 role="installation">
-    <title>Installation of Texinfo</title>
-
-    <para>Prepare Texinfo for compilation:</para>
-
-<screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen>
-
-    <note>
-      <para>As part of the configure process, a test is made that indicates an
-      error for TestXS_la-TestXS.lo.  This is not relevant for LFS and should be
-      ignored.</para>
-    </note>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make install</userinput></screen>
-
-  </sect2>
-
-  <sect2 role="content">
-    <title/>
-
-    <para>Details on this package are located in
-    <xref linkend="contents-texinfo" role="."/></para>
-
-  </sect2>
-
-</sect1>

+ 0 - 335
chapter06/toolchaintechnotes.xml

@@ -1,335 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-  <!ENTITY % general-entities SYSTEM "../general.ent">
-  %general-entities;
-]>
-
-<sect1 id="ch-tools-toolchaintechnotes">
-  <?dbhtml filename="toolchaintechnotes.html"?>
-
-  <title>Toolchain Technical Notes</title>
-
-  <para>This section explains some of the rationale and technical details
-  behind the overall build method. It is not essential to immediately
-  understand everything in this section. Most of this information will be
-  clearer after performing an actual build. This section can be referred
-  to at any time during the process.</para>
-
-  <para>The overall goal of <xref linkend="chapter-temporary-tools"/> is to
-  produce a temporary area that contains a known-good set of tools that can be
-  isolated from the host system. By using <command>chroot</command>, the
-  commands in the remaining chapters will be contained within that environment,
-  ensuring a clean, trouble-free build of the target LFS system. The build
-  process has been designed to minimize the risks for new readers and to provide
-  the most educational value at the same time.</para>
-
-  <para>The build process is based on the process of
-  <emphasis>cross-compilation</emphasis>. Cross-compilation is normally used
-  for building a compiler and its toolchain for a machine different from
-  the one that is used for the build. This is not strictly needed for LFS,
-  since the machine where the new system will run is the same as the one
-  used for the build. But cross-compilation has the great advantage that
-  anything that is cross-compiled cannot depend on the host environment.</para>
-
-  <sect2 id="cross-compile" xreflabel="About Cross-Compilation">
-
-    <title>About Cross-Compilation</title>
-
-    <para>Cross-compilation involves some concepts that deserve a section on
-    their own. Although this section may be omitted in a first reading, it
-    is strongly suggested to come back to it later in order to get a full
-    grasp of the build process.</para>
-
-    <para>Let us first define some terms used in this context:</para>
-
-    <variablelist>
-      <varlistentry><term>build</term><listitem>
-        <para>is the machine where we build programs. Note that this machine
-        is referred to as the <quote>host</quote> in other
-        sections.</para></listitem>
-      </varlistentry>
-
-      <varlistentry><term>host</term><listitem>
-        <para>is the machine/system where the built programs will run. Note
-        that this use of <quote>host</quote> is not the same as in other
-        sections.</para></listitem>
-      </varlistentry>
-
-      <varlistentry><term>target</term><listitem>
-        <para>is only used for compilers. It is the machine the compiler
-        produces code for. It may be different from both build and
-        host.</para></listitem>
-      </varlistentry>
-
-    </variablelist>
-
-    <para>As an example, let us imagine the following scenario: we may have a
-    compiler on a slow machine only, let's call the machine A, and the compiler
-    ccA. We may have also a fast machine (B), but with no compiler, and we may
-    want to produce code for a another slow machine (C). Then, to build a
-    compiler for machine C, we would have three stages:</para>
-
-    <informaltable align="center">
-      <tgroup cols="5">
-        <colspec colnum="1" align="center"/>
-        <colspec colnum="2" align="center"/>
-        <colspec colnum="3" align="center"/>
-        <colspec colnum="4" align="center"/>
-        <colspec colnum="5" align="left"/>
-        <thead>
-          <row><entry>Stage</entry><entry>Build</entry><entry>Host</entry>
-               <entry>Target</entry><entry>Action</entry></row>
-        </thead>
-        <tbody>
-          <row>
-            <entry>1</entry><entry>A</entry><entry>A</entry><entry>B</entry>
-            <entry>build cross-compiler cc1 using ccA on machine A</entry>
-          </row>
-          <row>
-            <entry>2</entry><entry>A</entry><entry>B</entry><entry>B</entry>
-            <entry>build cross-compiler cc2 using cc1 on machine A</entry>
-          </row>
-          <row>
-            <entry>3</entry><entry>B</entry><entry>C</entry><entry>C</entry>
-            <entry>build compiler ccC using cc2 on machine B</entry>
-          </row>
-        </tbody>
-      </tgroup>
-    </informaltable>
-
-    <para>Then, all the other programs needed by machine C can be compiled
-    using cc2 on the fast machine B. Note that unless B can run programs
-    produced for C, there is no way to test the built programs until machine
-    C itself is running. For example, for testing ccC, we may want to add a
-    fourth stage:</para>
-
-    <informaltable align="center">
-      <tgroup cols="5">
-        <colspec colnum="1" align="center"/>
-        <colspec colnum="2" align="center"/>
-        <colspec colnum="3" align="center"/>
-        <colspec colnum="4" align="center"/>
-        <colspec colnum="5" align="left"/>
-        <thead>
-          <row><entry>Stage</entry><entry>Build</entry><entry>Host</entry>
-               <entry>Target</entry><entry>Action</entry></row>
-        </thead>
-        <tbody>
-          <row>
-            <entry>4</entry><entry>C</entry><entry>C</entry><entry>C</entry>
-            <entry>rebuild  and test ccC using itself on machine C</entry>
-          </row>
-        </tbody>
-      </tgroup>
-    </informaltable>
-
-    <para>In the example above, only cc1 and cc2 are cross-compilers, that is,
-    they produce code for a machine different from the one they are run on.
-    The other compilers ccA and ccC produce code for the machine they are run
-    on. Such compilers are called <emphasis>native</emphasis> compilers.</para>
-
-  </sect2>
-
-  <sect2 id="lfs-cross">
-    <title>Implementation of Cross-Compilation for LFS</title>
-
-    <note>
-      <para>Almost all the build systems use names of the form
-      cpu-vendor-kernel-os referred to as the machine triplet. An astute
-      reader may wonder why a <quote>triplet</quote> refers to a four component
-      name. The reason is history: initially, three component names were enough
-      to designate unambiguously a machine, but with new machines and systems
-      appearing, that proved insufficient. The word <quote>triplet</quote>
-      remained. A simple way to determine your machine triplet is to run
-      the <command>config.guess</command>
-      script that comes with the source for many packages. Unpack the Binutils
-      sources and run the script: <userinput>./config.guess</userinput> and note
-      the output. For example, for a 32-bit Intel processor the
-      output will be <emphasis>i686-pc-linux-gnu</emphasis>. On a 64-bit
-      system it will be <emphasis>x86_64-pc-linux-gnu</emphasis>.</para>
-
-      <para>Also be aware of the name of the platform's dynamic linker, often
-      referred to as the dynamic loader (not to be confused with the standard
-      linker <command>ld</command> that is part of Binutils). The dynamic linker
-      provided by Glibc finds and loads the shared libraries needed by a
-      program, prepares the program to run, and then runs it. The name of the
-      dynamic linker for a 32-bit Intel machine will be <filename
-      class="libraryfile">ld-linux.so.2</filename> (<filename
-      class="libraryfile">ld-linux-x86-64.so.2</filename> for 64-bit systems). A
-      sure-fire way to determine the name of the dynamic linker is to inspect a
-      random binary from the host system by running: <userinput>readelf -l
-      &lt;name of binary&gt; | grep interpreter</userinput> and noting the
-      output. The authoritative reference covering all platforms is in the
-      <filename>shlib-versions</filename> file in the root of the Glibc source
-      tree.</para>
-    </note>
-
-    <para>In order to fake a cross compilation, the name of the host triplet
-    is slightly adjusted by changing the &quot;vendor&quot; field in the
-    <envar>LFS_TGT</envar> variable. We also use the
-    <parameter>--with-sysroot</parameter> when building the cross linker and
-    cross compiler, to tell them where to find the needed host files. This
-    ensures none of the other programs built in <xref
-    linkend="chapter-temporary-tools"/> can link to libraries on the build
-    machine. Only two stages are mandatory, and one more for tests:</para>
-
-    <informaltable align="center">
-      <tgroup cols="5">
-        <colspec colnum="1" align="center"/>
-        <colspec colnum="2" align="center"/>
-        <colspec colnum="3" align="center"/>
-        <colspec colnum="4" align="center"/>
-        <colspec colnum="5" align="left"/>
-        <thead>
-          <row><entry>Stage</entry><entry>Build</entry><entry>Host</entry>
-               <entry>Target</entry><entry>Action</entry></row>
-        </thead>
-        <tbody>
-          <row>
-            <entry>1</entry><entry>pc</entry><entry>pc</entry><entry>lfs</entry>
-            <entry>build cross-compiler cc1 using cc-pc on pc</entry>
-          </row>
-          <row>
-            <entry>2</entry><entry>pc</entry><entry>lfs</entry><entry>lfs</entry>
-            <entry>build compiler cc-lfs using cc1 on pc</entry>
-          </row>
-          <row>
-            <entry>3</entry><entry>lfs</entry><entry>lfs</entry><entry>lfs</entry>
-            <entry>rebuild and test cc-lfs using itself on lfs</entry>
-          </row>
-        </tbody>
-      </tgroup>
-    </informaltable>
-
-    <para>In the above table, <quote>on pc</quote> means the commands are run
-    on a machine using the already installed distribution. <quote>On
-    lfs</quote> means the commands are run in a chrooted environment.</para>
-
-    <para>Now, there is more about cross-compiling: the C language is not
-    just a compiler, but also defines a standard library. In this book, the
-    GNU C library, named glibc, is used. This library must
-    be compiled for the lfs machine, that is, using the cross compiler cc1. 
-    But the compiler itself uses an internal library implementing complex
-    instructions not available in the assembler instruction set. This
-    internal library is named libgcc, and must be linked to the glibc
-    library to be fully functional! Furthermore, the standard library for
-    C++ (libstdc++) also needs being linked to glibc. The solution
-    to this chicken and egg problem is to first build a degraded cc1+libgcc,
-    lacking some fuctionalities such as threads and exception handling, then
-    build glibc using this degraded compiler (glibc itself is not
-    degraded), then build libstdc++. But this last library will lack the
-    same functionalities as libgcc.</para>
-
-    <para>This is not the end of the story: the conclusion of the preceding
-    paragraph is that cc1 is unable to build a fully functional libstdc++, but
-    this is the only compiler available for building the C/C++ libraries
-    during stage 2! Of course, the compiler built during stage 2, cc-lfs,
-    would be able to build those libraries, but (i) the build system of
-    gcc does not know that it is usable on pc, and (ii) using it on pc
-    would be at risk of linking to the pc libraries, since cc-lfs is a native
-    compiler. So we have to build libstdc++ later, in chroot.</para>
-
-  </sect2>
-
-  <sect2 id="other-details">
-
-    <title>Other procedural details</title>
-
-    <para>The cross-compiler will be installed in a separate <filename
-    class="directory">$LFS/tools</filename> directory, since it will not
-    be part of the final system.</para>
-
-    <para>Binutils is installed first because the <command>configure</command>
-    runs of both GCC and Glibc perform various feature tests on the assembler
-    and linker to determine which software features to enable or disable. This
-    is more important than one might first realize. An incorrectly configured
-    GCC or Glibc can result in a subtly broken toolchain, where the impact of
-    such breakage might not show up until near the end of the build of an
-    entire distribution. A test suite failure will usually highlight this error
-    before too much additional work is performed.</para>
-
-    <para>Binutils installs its assembler and linker in two locations,
-    <filename class="directory">$LFS/tools/bin</filename> and <filename
-    class="directory">$LFS/tools/$LFS_TGT/bin</filename>. The tools in one
-    location are hard linked to the other. An important facet of the linker is
-    its library search order. Detailed information can be obtained from
-    <command>ld</command> by passing it the <parameter>--verbose</parameter>
-    flag. For example, <command>$LFS_TGT-ld --verbose | grep SEARCH</command>
-    will illustrate the current search paths and their order. It shows which
-    files are linked by <command>ld</command> by compiling a dummy program and
-    passing the <parameter>--verbose</parameter> switch to the linker. For
-    example,
-    <command>$LFS_TGT-gcc dummy.c -Wl,--verbose 2&gt;&amp;1 | grep succeeded</command>
-    will show all the files successfully opened during the linking.</para>
-
-    <para>The next package installed is GCC. An example of what can be
-    seen during its run of <command>configure</command> is:</para>
-
-<screen><computeroutput>checking what assembler to use... /mnt/lfs/tools/i686-lfs-linux-gnu/bin/as
-checking what linker to use... /mnt/lfs/tools/i686-lfs-linux-gnu/bin/ld</computeroutput></screen>
-
-    <para>This is important for the reasons mentioned above. It also
-    demonstrates that GCC's configure script does not search the PATH
-    directories to find which tools to use. However, during the actual
-    operation of <command>gcc</command> itself, the same search paths are not
-    necessarily used. To find out which standard linker <command>gcc</command>
-    will use, run: <command>$LFS_TGT-gcc -print-prog-name=ld</command>.</para>
-
-    <para>Detailed information can be obtained from <command>gcc</command> by
-    passing it the <parameter>-v</parameter> command line option while compiling
-    a dummy program. For example, <command>gcc -v dummy.c</command> will show
-    detailed information about the preprocessor, compilation, and assembly
-    stages, including <command>gcc</command>'s included search paths and their
-    order.</para>
-
-    <para>Next installed are sanitized Linux API headers. These allow the
-    standard C library (Glibc) to interface with features that the Linux
-    kernel will provide.</para>
-
-    <para>The next package installed is Glibc. The most important
-    considerations for building Glibc are the compiler, binary tools, and
-    kernel headers. The compiler is generally not an issue since Glibc will
-    always use the compiler relating to the <parameter>--host</parameter>
-    parameter passed to its configure script; e.g. in our case, the compiler
-    will be <command>$LFS_TGT-gcc</command>. The binary tools and kernel
-    headers can be a bit more complicated. Therefore, take no risks and use
-    the available configure switches to enforce the correct selections. After
-    the run of <command>configure</command>, check the contents of the
-    <filename>config.make</filename> file in the <filename
-    class="directory">build</filename> directory for all important details.
-    Note the use of <parameter>CC="$LFS_TGT-gcc"</parameter> (with
-    <envar>$LFS_TGT</envar> expanded) to control which binary tools are used
-    and the use of the <parameter>-nostdinc</parameter> and
-    <parameter>-isystem</parameter> flags to control the compiler's include
-    search path. These items highlight an important aspect of the Glibc
-    package&mdash;it is very self-sufficient in terms of its build machinery
-    and generally does not rely on toolchain defaults.</para>
-
-    <para>As said above, the standard C++ library is compiled next, followed
-    by all the programs that need themselves to be built. The install step
-    uses the <envar>DESTDIR</envar> variable to have the programs land into
-    the LFS filesystem.</para>
-
-    <para>Then the native lfs compiler is built. First Binutils Pass 2, with
-    the same <envar>DESTDIR</envar> install as the other programs, then the
-    second pass of GCC, omitting libstdc++ and other non-important libraries.
-    Due to some weird logic in GCC's configure script,
-    <envar>CC_FOR_TARGET</envar> ends up as <command>cc</command> when host
-    is the same as target, but is different from build. This is why
-    <parameter>CC_FOR_TARGET=$LFS_TGT-gcc</parameter> is put explicitely into
-    the configure options.</para>
-
-    <para>Upon entering the chroot environment in <xref
-    linkend="chapter-building-system"/>, the first task is to install
-    libstdc++. Then temporary installations of programs needed for the proper
-    operation of the toolchain are performed. Programs needed for testing
-    other programs are also built. From this point onwards, the
-    core toolchain is self-contained and self-hosted.  In the remainder of
-    the <xref linkend="chapter-building-system"/>, final versions of all the
-    packages needed for a fully functional system are built, tested and
-    installed.</para>
-
-  </sect2>
-
-</sect1>

+ 0 - 113
chapter06/util-linux.xml

@@ -1,113 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-  <!ENTITY % general-entities SYSTEM "../general.ent">
-  %general-entities;
-]>
-
-<sect1 id="ch-tools-util-linux" role="wrap">
-  <?dbhtml filename="util-linux.html"?>
-
-  <sect1info condition="script">
-    <productname>util-linux</productname>
-    <productnumber>&util-linux-version;</productnumber>
-    <address>&util-linux-url;</address>
-  </sect1info>
-
-  <title>Util-linux-&util-linux-version;</title>
-
-  <indexterm zone="ch-tools-util-linux">
-    <primary sortas="a-Util-linux">Util-linux</primary>
-    <secondary>tools</secondary>
-  </indexterm>
-
-  <sect2 role="package">
-    <title/>
-
-    <para>The Util-linux package contains miscellaneous utility programs.</para>
-
-    <segmentedlist>
-      <segtitle>&buildtime;</segtitle>
-      <segtitle>&diskspace;</segtitle>
-
-      <seglistitem>
-        <seg>&util-linux-ch5-sbu;</seg>
-        <seg>&util-linux-ch5-du;</seg>
-      </seglistitem>
-    </segmentedlist>
-
-  </sect2>
-
-  <sect2 role="installation">
-    <title>Installation of Util-linux</title>
-
-    <para>First create a directory
-    to enable storage for the <command>hwclock</command> program:</para>
-
-<screen><userinput remap="pre">mkdir -pv /var/lib/hwclock</userinput></screen>
-
-    <para>Prepare Util-linux for compilation:</para>
-
-<screen><userinput remap="configure">./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \
-            --docdir=/usr/share/doc/util-linux-&util-linux-version; \
-            --disable-chfn-chsh  \
-            --disable-login      \
-            --disable-nologin    \
-            --disable-su         \
-            --disable-setpriv    \
-            --disable-runuser    \
-            --disable-pylibmount \
-            --disable-static     \
-            --without-python</userinput></screen>
-
-    <variablelist>
-      <title>The meaning of the configure options:</title>
-<!-- TODO -->
-      <varlistentry>
-        <term><parameter>ADJTIME_PATH=/var/lib/hwclock/adjtime</parameter></term>
-        <listitem>
-          <para>This sets the location of the file recording information about
-          the hardware clock, in accordance to the FHS. This is not stricly
-          needed fot his temporary tool, but it prevent creating a file
-          at another location, which would not be overwritten or removed
-          when building the final util-linux.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><parameter>--disable-*</parameter></term>
-        <listitem>
-          <para>Those switches prevent warnings about building components
-          that require packages not in LFS or not installed yet.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><parameter>--without-python</parameter></term>
-        <listitem>
-          <para>This switch disables using <application>Python</application>.
-          It avoids trying to build unneeded bindings.</para>
-        </listitem>
-      </varlistentry>
-
-     </variablelist>
-
-    <para>Compile the package:</para>
-
-<screen><userinput remap="make">make</userinput></screen>
-
-    <para>Install the package:</para>
-
-<screen><userinput remap="install">make install</userinput></screen>
-
-  </sect2>
-
-  <sect2 role="content">
-    <title/>
-
-    <para>Details on this package are located in
-    <xref linkend="contents-utillinux" role="."/></para>
-
-  </sect2>
-
-</sect1>

+ 1 - 1
chapter07/bash.xml

@@ -25,7 +25,7 @@
     <title/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/bash.xml"
+    href="../chapter08/bash.xml"
     xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
     <segmentedlist>

+ 1 - 1
chapter07/binutils-pass1.xml

@@ -25,7 +25,7 @@
     <title/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/binutils.xml"
+    href="../chapter08/binutils.xml"
     xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
     <segmentedlist>

+ 1 - 1
chapter07/binutils-pass2.xml

@@ -25,7 +25,7 @@
     <title/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/binutils.xml"
+    href="../chapter08/binutils.xml"
     xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
     <segmentedlist>

+ 1 - 1
chapter07/bison.xml

@@ -25,7 +25,7 @@
     <title/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/bison.xml"
+    href="../chapter08/bison.xml"
     xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
     <segmentedlist>

+ 1 - 1
chapter07/bzip2.xml

@@ -25,7 +25,7 @@
     <title/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/bzip2.xml"
+    href="../chapter08/bzip2.xml"
     xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
     <segmentedlist>

+ 1 - 1
chapter07/coreutils.xml

@@ -25,7 +25,7 @@
     <title/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/coreutils.xml"
+    href="../chapter08/coreutils.xml"
     xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
     <segmentedlist>

+ 1 - 1
chapter07/diffutils.xml

@@ -25,7 +25,7 @@
     <title/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/diffutils.xml"
+    href="../chapter08/diffutils.xml"
     xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
     <segmentedlist>

+ 1 - 1
chapter07/file.xml

@@ -25,7 +25,7 @@
     <title/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/file.xml"
+    href="../chapter08/file.xml"
     xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
     <segmentedlist>

+ 1 - 1
chapter07/findutils.xml

@@ -25,7 +25,7 @@
     <title/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/findutils.xml"
+    href="../chapter08/findutils.xml"
     xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
     <segmentedlist>

+ 1 - 1
chapter07/flex.xml

@@ -25,7 +25,7 @@
     <title/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/flex.xml"
+    href="../chapter08/flex.xml"
     xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
     <segmentedlist>

+ 1 - 1
chapter07/gawk.xml

@@ -25,7 +25,7 @@
     <title/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/gawk.xml"
+    href="../chapter08/gawk.xml"
     xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
     <segmentedlist>

+ 1 - 1
chapter07/gcc-pass1.xml

@@ -25,7 +25,7 @@
     <title/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/gcc.xml"
+    href="../chapter08/gcc.xml"
     xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
     <segmentedlist>

+ 1 - 1
chapter07/gcc-pass2.xml

@@ -25,7 +25,7 @@
     <title/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/gcc.xml"
+    href="../chapter08/gcc.xml"
     xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
     <segmentedlist>

+ 1 - 1
chapter07/gettext.xml

@@ -25,7 +25,7 @@
     <title/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/gettext.xml"
+    href="../chapter08/gettext.xml"
     xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
     <segmentedlist>

+ 1 - 1
chapter07/glibc.xml

@@ -25,7 +25,7 @@
     <title/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/glibc.xml"
+    href="../chapter08/glibc.xml"
     xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
     <segmentedlist>

+ 1 - 1
chapter07/grep.xml

@@ -25,7 +25,7 @@
     <title/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/grep.xml"
+    href="../chapter08/grep.xml"
     xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
     <segmentedlist>

+ 1 - 1
chapter07/gzip.xml

@@ -25,7 +25,7 @@
     <title/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/gzip.xml"
+    href="../chapter08/gzip.xml"
     xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
     <segmentedlist>

+ 1 - 1
chapter07/m4.xml

@@ -25,7 +25,7 @@
     <title/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/m4.xml"
+    href="../chapter08/m4.xml"
     xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
     <segmentedlist>

+ 1 - 1
chapter07/make.xml

@@ -24,7 +24,7 @@
     <title/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/make.xml"
+    href="../chapter08/make.xml"
     xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
     <segmentedlist>

+ 1 - 1
chapter07/ncurses.xml

@@ -25,7 +25,7 @@
     <title/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/ncurses.xml"
+    href="../chapter08/ncurses.xml"
     xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
     <segmentedlist>

+ 1 - 1
chapter07/patch.xml

@@ -25,7 +25,7 @@
     <title/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/patch.xml"
+    href="../chapter08/patch.xml"
     xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
     <segmentedlist>

+ 1 - 1
chapter07/python.xml

@@ -25,7 +25,7 @@
     <title/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/python.xml"
+    href="../chapter08/python.xml"
     xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
     <segmentedlist>

+ 1 - 1
chapter07/sed.xml

@@ -25,7 +25,7 @@
     <title/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/sed.xml"
+    href="../chapter08/sed.xml"
     xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
     <segmentedlist>

+ 1 - 1
chapter07/tar.xml

@@ -25,7 +25,7 @@
     <title/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/tar.xml"
+    href="../chapter08/tar.xml"
     xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
     <segmentedlist>

+ 1 - 1
chapter07/texinfo.xml

@@ -25,7 +25,7 @@
     <title/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/texinfo.xml"
+    href="../chapter08/texinfo.xml"
     xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
     <segmentedlist>

+ 1 - 1
chapter07/xz.xml

@@ -25,7 +25,7 @@
     <title/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../chapter06/xz.xml"
+    href="../chapter08/xz.xml"
     xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
     <segmentedlist>