Expanded the Locking in Glibc and Re-adjusting the toolchain

sections to also catch missing cc->gcc symlink and provide more
help for when things go wrong.


git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@3173 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
This commit is contained in:
Greg Schafer 2004-01-17 07:53:07 +00:00
parent 443cace8ce
commit 51fe2150ea
4 changed files with 37 additions and 25 deletions

View File

@ -50,6 +50,10 @@
</itemizedlist>
</listitem>
<listitem><para>January 16th, 2004 [greg]: Expanded the Locking in Glibc and
Re-adjusting the toolchain sections to also catch missing cc->gcc symlink and
provide more help for when things go wrong.</para></listitem>
<listitem><para>January 16th, 2004 [greg]: Implemented changes to make the
running of the Chapter 5 test suites strictly optional i.e. the default action
for the average reader is to not run them. Closes 719.</para></listitem>

View File

@ -462,8 +462,10 @@ mv -f tempspecfile $SPECFILE &amp;&amp;
unset SPECFILE</userinput></screen>
<para>We recommend that you cut-and-paste the above rather than try and type it
all in. Or you can edit the specs file by hand if you want to: just replace any
occurrence of "/lib/ld-linux.so.2" with "/tools/lib/ld-linux.so.2".</para>
all in. Or you can edit the specs file by hand if you want to: just replace the
occurrence of "/lib/ld-linux.so.2" with "/tools/lib/ld-linux.so.2". Be sure to
visually inspect the specs file to verify the intended change was actually
made.</para>
<important><para>If you are working on a platform where the name of the dynamic
linker is something other than <filename>ld-linux.so.2</filename>, you
@ -487,7 +489,7 @@ functions (compiling and linking) of the new toolchain are working as expected.
For this we are going to perform a simple sanity check:</para>
<screen><userinput>echo 'main(){}' &gt; dummy.c
gcc dummy.c
cc dummy.c
readelf -l a.out | grep ': /tools'</userinput></screen>
<para>If everything is working correctly, there should be no errors, and the
@ -495,15 +497,23 @@ output of the last command will be:</para>
<blockquote><screen>[Requesting program interpreter: /tools/lib/ld-linux.so.2]</screen></blockquote>
<para>If you did not receive the output as shown above, or received no output at
all, then something is seriously wrong. You will need to investigate and retrace
your steps to find out where the problem is and correct it. There is no point in
continuing until this is done. Most likely something went wrong with the specs
file amendment above. Note especially that <filename>/tools/lib</filename>
appears as the prefix of our dynamic linker. Of course, if you are working on a
platform where the name of the dynamic linker is something other than
<filename>ld-linux.so.2</filename>, then the output will be slightly
different.</para>
<para>(Of course allowing for platform specific differences in dynamic linker
name). Note especially that <filename class="directory">/tools/lib</filename>
appears as the prefix of our dynamic linker. If you did not receive the output
as shown above, or received no output at all, then something is seriously wrong.
You will need to investigate and retrace your steps to find out where the
problem is and correct it. There is no point in continuing until this is done.
First, redo the sanity check using <userinput>gcc</userinput> instead of
<userinput>cc</userinput>. If this works it means the
<filename class="symlink">/tools/bin/cc</filename> symlink is missing. Revisit
<xref linkend="ch05-gcc-pass1"/> and fix the symlink. Second, ensure your $PATH
is correct. You can check this by running <userinput>echo $PATH</userinput> and
verifying that <filename class="directory">/tools/bin</filename> is at the head
of the list. If the $PATH is wrong it could mean you're not logged in as user
<emphasis>lfs</emphasis> or something went wrong back in
<xref linkend="ch05-settingenviron"/>. Third, something may have gone wrong with
the specs file amendment above. In this case redo the specs file amendment
ensuring to cut-and-paste the commands as was recommended.</para>
<para>Once you are satisfied that all is well, clean up the test files:</para>

View File

@ -98,7 +98,7 @@ Unix systems. Not everybody has the GNU C compiler installed. Simply running
<userinput>cc</userinput> leaves the system administrator free to decide what
C compiler to install, as long as there's a symlink pointing to it:</para>
<screen><userinput>ln -sf gcc /tools/bin/cc</userinput></screen>
<screen><userinput>ln -s gcc /tools/bin/cc</userinput></screen>
</sect2>

View File

@ -363,8 +363,8 @@ mv -f newspecfile $SPECFILE &amp;&amp;
unset SPECFILE</userinput></screen>
<para>Again, cutting and pasting the above is recommended. And just like
before, it is a good idea to check the specs file to ensure the intended
changes were actually made.</para>
before, it is a good idea to visually inspect the specs file to verify the
intended change was actually made.</para>
<important><para>If you are working on a platform where the name of the dynamic
linker is something other than <filename>ld-linux.so.2</filename>, you
@ -380,7 +380,7 @@ basic functions (compiling and linking) of the adjusted toolchain are working
as expected. For this we are going to perform a simple sanity check:</para>
<screen><userinput>echo 'main(){}' &gt; dummy.c
gcc dummy.c
cc dummy.c
readelf -l a.out | grep ': /lib'</userinput></screen>
<para>If everything is working correctly, there should be no errors, and the
@ -388,15 +388,13 @@ output of the last command will be:</para>
<blockquote><screen>[Requesting program interpreter: /lib/ld-linux.so.2]</screen></blockquote>
<para>If you did not receive the output as shown above, or received no output at
all, then something is seriously wrong. You will need to investigate and retrace
your steps to find out where the problem is and correct it. There is no point in
continuing until this is done. Most likely something went wrong with the specs
file amendment above. Note especially that <filename>/lib</filename> now appears
as the prefix of our dynamic linker. Of course, if you are working on a platform
where the name of the dynamic linker is something other than
<filename>ld-linux.so.2</filename>, then the output will be slightly
different.</para>
<para>(Of course allowing for platform specific differences in dynamic linker
name). Note especially that <filename class="directory">/lib</filename> now
appears as the prefix of our dynamic linker. If you did not receive the output
as shown above, or received no output at all, then something is seriously wrong.
You will need to investigate and retrace your steps to find out where the
problem is and correct it. There is no point in continuing until this is done.
Most likely something went wrong with the specs file amendment above.</para>
<para>Once you are satisfied that all is well, clean up the test files:</para>