Index: chapter05/adjusting.xml
===================================================================
--- chapter05/adjusting.xml	(revision b0e1dc860c471d7047fc906001f3a336ef5f357c)
+++ chapter05/adjusting.xml	(revision 6e886330cf157dc71e6a0a1fca410d7005683167)
@@ -33,21 +33,19 @@
   dumping GCC's <quote>specs</quote> file to a location where GCC will look for it
   by default. A simple <command>sed</command> substitution then alters the
-  dynamic linker that GCC will use.</para>
+  dynamic linker that GCC will use. The principle here is to find all references
+  to the dynamic linker file in <filename class="directory">/lib</filename>
+  or possibly <filename class="directory">/lib64</filename> if the host system
+  is 64-bit capable, and adjust them to point to the new location in
+  <filename class="directory">/tools</filename>.</para>
 
   <para>For the sake of accuracy, it is recommended to use a copy-and-paste
   method when issuing the following command. Be sure to visually inspect the
-  specs file and verify that all occurrences of <quote>/lib/ld-linux.so.2</quote>
-  have been replaced with <quote>/tools/lib/ld-linux.so.2</quote>:</para>
-
-  <important>
-    <para>If working on a platform where the name of the dynamic linker is
-    something other than <filename class="libraryfile">ld-linux.so.2</filename>,
-    replace <quote>ld-linux.so.2</quote> with the name of the platform's
-    dynamic linker in the following commands. Refer to <xref
-    linkend="ch-tools-toolchaintechnotes" role=","/> if necessary.</para>
-  </important>
+  specs file to verify that it has properly adjusted all references to the
+  dynamic linker location. Refer to <xref
+    linkend="ch-tools-toolchaintechnotes" role=","/> for the default name
+  of the dynamic linker, if necessary.</para>
 
 <!-- Ampersands are needed to allow copy and paste -->
-<screen><userinput>gcc -dumpspecs | sed 's@/lib/ld-linux.so.2@/tools&amp;@g' &gt; \
+<screen><userinput>gcc -dumpspecs | sed 's@/lib\(64\)\?/ld@/tools&amp;@g' &gt; \
   `dirname $(gcc -print-libgcc-file-name)`/specs</userinput></screen>
 
@@ -87,5 +85,6 @@
     /tools/lib/ld-linux.so.2]</computeroutput></screen>
 
-    <para>Note that <filename class="directory">/tools/lib</filename>
+    <para>Note that <filename class="directory">/tools/lib</filename>, or
+    <filename class="directory">/tools/lib64</filename> for 64-bit machines
     appears as the prefix of the dynamic linker.</para>
 
Index: chapter05/binutils-pass1.xml
===================================================================
--- chapter05/binutils-pass1.xml	(revision b0e1dc860c471d7047fc906001f3a336ef5f357c)
+++ chapter05/binutils-pass1.xml	(revision 6e886330cf157dc71e6a0a1fca410d7005683167)
@@ -125,9 +125,14 @@
     first pass will soon be replaced by those from the second.</para>
 
+    <para>Create a symlink to ensure the sanity of our toolchain:</para>
+
+<screen><userinput remap="install">mkdir -v /tools/lib
+ln -sv lib /tools/lib64</userinput></screen>
+
     <para>Install the package:</para>
 
 <screen><userinput remap="install">make install</userinput></screen>
 
-    <para>Next, prepare the linker for the <quote>Adjusting</quote> phase
+    <para>Finally, prepare the linker for the <quote>Adjusting</quote> phase
     later on:</para>
 
Index: chapter05/gcc-pass1.xml
===================================================================
--- chapter05/gcc-pass1.xml	(revision b0e1dc860c471d7047fc906001f3a336ef5f357c)
+++ chapter05/gcc-pass1.xml	(revision 6e886330cf157dc71e6a0a1fca410d7005683167)
@@ -63,5 +63,5 @@
 <screen><userinput remap="configure">CC="gcc -B/usr/bin/" ../gcc-&gcc-version;/configure --prefix=/tools \
     --with-local-prefix=/tools --disable-nls --disable-shared --disable-libssp \
-    --enable-languages=c</userinput></screen>
+    --disable-multilib --enable-languages=c</userinput></screen>
 
     <variablelist>
@@ -112,4 +112,11 @@
           <para>This option ensures that only the C compiler is built.
           This is the only language needed now.</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><parameter>--disable-multilib</parameter></term>
+        <listitem>
+          <para>We currently only want to build support for 64-bit libraries.</para>
         </listitem>
       </varlistentry>
Index: chapter05/gcc-pass2.xml
===================================================================
--- chapter05/gcc-pass2.xml	(revision b0e1dc860c471d7047fc906001f3a336ef5f357c)
+++ chapter05/gcc-pass2.xml	(revision 6e886330cf157dc71e6a0a1fca410d7005683167)
@@ -100,5 +100,6 @@
     against the new Glibc. Issue:</para>
 
-<screen><userinput remap="pre">for file in $(find gcc/config -name linux64.h -o -name linux.h)
+<screen><userinput remap="pre">for file in \
+ $(find gcc/config -name linux64.h -o -name linux.h -o -name sysv4.h)
 do
   cp -uv $file{,.orig}
@@ -113,5 +114,6 @@
     <para>In case the above seems hard to follow, let's break it down a bit.
     First we find all the files under the gcc/config directory that are named
-    either <filename>linux.h</filename> or <filename>linux64.h</filename>.
+    either <filename>linux.h</filename>, <filename>linux64.h</filename> or
+    <filename>sysv4.h</filename>.
     For each file found, we copy it to a file of the same name but with an added
     suffix of <quote>.orig</quote>. Then the first sed expression prepends
@@ -125,4 +127,12 @@
     </para>
 
+    <para>Unsetting the multlib spec for GCC ensures that it
+    won't attempt to link against libraries on the host:</para>
+
+<screen><userinput remap="pre">for file in $(find gcc/config -name t-linux64) ; do \
+   cp -v $file{,.orig}
+   sed '/MULTILIB_OSDIRNAMES/d' $file.orig &gt; $file
+done</userinput></screen>
+
     <para>As in the first build of GCC it requires the GMP and MPFR packages.
     Unpack the tarballs and move them into the required directory names:</para>
@@ -147,5 +157,6 @@
     --enable-shared --enable-threads=posix \
     --enable-__cxa_atexit --enable-languages=c,c++ \
-    --disable-libstdcxx-pch --disable-bootstrap</userinput></screen>
+    --disable-libstdcxx-pch --disable-multilib \
+    --disable-bootstrap</userinput></screen>
 
     <variablelist>
Index: chapter05/glibc.xml
===================================================================
--- chapter05/glibc.xml	(revision b0e1dc860c471d7047fc906001f3a336ef5f357c)
+++ chapter05/glibc.xml	(revision 6e886330cf157dc71e6a0a1fca410d7005683167)
@@ -65,5 +65,7 @@
     that is changed when setting -march.</para>
 
-<screen><userinput remap="configure">echo "CFLAGS += -march=i486 -mtune=native" &gt; configparms</userinput></screen>
+<screen><userinput remap="configure">case `uname -m` in
+  i?86) echo "CFLAGS += -march=i486 -mtune=native" &gt; configparms ;;
+esac</userinput></screen>
 
     <para>Next, prepare Glibc for compilation:</para>
Index: chapter05/toolchaintechnotes.xml
===================================================================
--- chapter05/toolchaintechnotes.xml	(revision b0e1dc860c471d7047fc906001f3a336ef5f357c)
+++ chapter05/toolchaintechnotes.xml	(revision 6e886330cf157dc71e6a0a1fca410d7005683167)
@@ -28,10 +28,10 @@
   <important>
     <para>Before continuing, be aware of the name of the working platform,
-    often referred to as the target triplet. Many times, the target
-    triplet will probably be <emphasis>i686-pc-linux-gnu</emphasis>. A
-    simple way to determine the name of the target 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.</para>
+    often referred to as the target triplet. A simple way to determine the
+    name of the target 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 modern 32-bit Intel processor the
+    output will likely be <emphasis>i686-pc-linux-gnu</emphasis>.</para>
 
     <para>Also be aware of the name of the platform's dynamic linker, often
@@ -40,10 +40,7 @@
     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 will usually be <filename class="libraryfile">ld-linux.so.2</filename>.
-    On platforms that are less prevalent, the name might be <filename
-    class="libraryfile">ld.so.1</filename>, and newer 64 bit platforms might
-    be named something else entirely. The name of the platform's dynamic linker
-    can be determined by looking in the <filename class="directory">/lib</filename>
-    directory on the host system. A sure-fire way to determine the name is to
+    linker for a 32-bit Intel machine will be
+    <filename class="libraryfile">ld-linux.so.2</filename>.
+    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>
