Index: chapter01/changelog.xml
===================================================================
--- chapter01/changelog.xml	(revision 40abfd5df275ae22d832a991a24883c28e4259f6)
+++ chapter01/changelog.xml	(revision 2914987be2f15790bf042ec4f1e39361e6937dc8)
@@ -44,4 +44,10 @@
 	  allow test-installation.pl to run.</para>
         </listitem>
+	<listitem>
+	  <para>[jhuntwork] - Adjust chapter 5 binutils to build a static ld-new
+	  for use in the chapter 6 readjusting section. Also add some extended
+	  sanity checks. These fixes are adapted from DIY-Linux and Greg Schafer.
+	  Thanks to Dan Nicholson for the report, as well.
+	</listitem>
       </itemizedlist>
     </listitem>
Index: chapter05/binutils-pass2.xml
===================================================================
--- chapter05/binutils-pass2.xml	(revision 40abfd5df275ae22d832a991a24883c28e4259f6)
+++ chapter05/binutils-pass2.xml	(revision 2914987be2f15790bf042ec4f1e39361e6937dc8)
@@ -50,5 +50,5 @@
 
 <screen><userinput>../binutils-&binutils-version;/configure --prefix=/tools \
-    --disable-nls --enable-shared --with-lib-path=/tools/lib</userinput></screen>
+    --disable-nls --with-lib-path=/tools/lib</userinput></screen>
 
     <variablelist>
@@ -81,4 +81,11 @@
     <para>Install the package:</para>
 
+    <para>Now prepare the linker for the <quote>Re-adjusting</quote> phase in
+    the next chapter:</para>
+
+<screen><userinput>make -C ld clean
+make -C ld LDFLAGS="-s" LIB_PATH=/usr/lib:/lib
+cp -v ld/ld-new /tools/bin</userinput></screen>
+
 <screen><userinput>make install</userinput></screen>
 
Index: chapter06/readjusting.xml
===================================================================
--- chapter06/readjusting.xml	(revision 40abfd5df275ae22d832a991a24883c28e4259f6)
+++ chapter06/readjusting.xml	(revision 2914987be2f15790bf042ec4f1e39361e6937dc8)
@@ -20,10 +20,15 @@
 directories.</para>
 
-<para>First, amend the GCC specs file so that it points to the new
+<para>First, create a symlink to the adjusted linker we created in chapter 5.</para>
+
+<screen><userinput>ln -sv /tools/bin/ld-new /usr/bin/ld</userinput></screen>
+
+<para>Next, amend the GCC specs file so that it points to the new
 dynamic linker. A <command>sed</command> command accomplishes this:</para>
 
 <screen><userinput>SPECFILE=`dirname $(gcc -print-libgcc-file-name)`/specs &amp;&amp;
 gcc -dumpspecs > $SPECFILE &amp;&amp;
-sed -i 's@^/tools/lib/ld-linux.so.2@/lib/ld-linux.so.2@g' $SPECFILE &amp;&amp;
+sed -i -e '/^\*link:$/{n;s,$, -L/usr/lib,}' \
+       -e 's@^/tools/lib/ld-linux.so.2@/lib/ld-linux.so.2@g' $SPECFILE &amp;&amp;
 unset SPECFILE</userinput></screen>
 
@@ -39,6 +44,6 @@
 necessary.</para></important>
 
-<para>Now create temporary wrapper scripts for <filename>gcc</filename> and
-<filename>ld</filename>. These scripts will point to their real counterparts
+<para>Now create a temporary wrapper script for <filename>gcc</filename>.
+This script will point to the real <filename>gcc</filename>
 in <filename class="directory">/tools</filename> but with adjusted parameters
 to ensure that GCC in the next section links to our newly installed Glibc.</para>
@@ -46,11 +51,7 @@
 <screen><userinput>cat &gt; /usr/bin/gcc &lt;&lt; "EOF"
 #!/bin/bash
-/tools/bin/gcc -B/usr/lib $@
+/tools/bin/gcc -B/usr/lib/ -B/usr/bin/ $@
 EOF
-cat &gt; /usr/bin/ld &lt;&lt; "EOF"
-#!/bin/bash
-/tools/bin/ld -nostdlib -L/usr/lib -L/lib $@
-EOF
-chmod 755 /usr/bin/{ld,gcc}
+chmod 755 /usr/bin/gcc
 ln -s gcc /usr/bin/cc</userinput></screen>
 
@@ -61,5 +62,5 @@
 
 <screen><userinput>echo 'main(){}' &gt; dummy.c
-cc dummy.c
+cc dummy.c -Wl,--verbose &amp;&gt; dummy.log
 readelf -l a.out | grep ': /lib'</userinput></screen>
 
@@ -73,4 +74,34 @@
 the prefix of our dynamic linker.</para>
 
+<para>Now make sure that we're setup to use the correct start files:</para>
+
+<screen><userinput>grep "/usr/lib/crt.* " dummy.log</userinput></screen>
+
+<para>If everything is working correctly, there should be no errors,
+and the output of the last command will be:</para>
+
+<screen><computeroutput>attempt to open /usr/lib/crt1.o succeeded
+attempt to open /usr/lib/crti.o succeeded
+attempt to open /usr/lib/crtn.o succeeded</computeroutput></screen>
+
+<para>Next make sure that we're using the correct libc:</para>
+
+<screen><userinput>grep "/lib/libc.so.6 " dummy.log</userinput></screen>
+
+<para>If everything is working correctly, there should be no errors,
+and the output of the last command will be:</para>
+
+<screen><computeroutput>attempt to open /lib/libc.so.6 succeeded</computeroutput></screen>
+
+<para>Lastly, make sure GCC is using the correct dynamic linker:</para>
+
+<screen><userinput>grep found dummy.log</userinput></screen>
+
+<para>If everything is working correctly, there should be no errors,
+and the output of the last command will be (allowing for
+platform-specific differences in dynamic linker name):</para>
+
+<screen><computeroutput>found ld-linux.so.2 at /lib/ld-linux.so.2</computeroutput></screen>
+
 <para>If the output does not appear as shown above or is not received
 at all, then something is seriously wrong. Investigate and retrace the
@@ -83,5 +114,5 @@
 files:</para>
 
-<screen><userinput>rm -v dummy.c a.out</userinput></screen></caution>
+<screen><userinput>rm -v dummy.c a.out dummy.log</userinput></screen></caution>
 
 </sect1>
