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> </itemizedlist>
</listitem> </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 <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 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> 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> unset SPECFILE</userinput></screen>
<para>We recommend that you cut-and-paste the above rather than try and type it <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 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".</para> 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 <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 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> For this we are going to perform a simple sanity check:</para>
<screen><userinput>echo 'main(){}' &gt; dummy.c <screen><userinput>echo 'main(){}' &gt; dummy.c
gcc dummy.c cc dummy.c
readelf -l a.out | grep ': /tools'</userinput></screen> readelf -l a.out | grep ': /tools'</userinput></screen>
<para>If everything is working correctly, there should be no errors, and the <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> <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 <para>(Of course allowing for platform specific differences in dynamic linker
all, then something is seriously wrong. You will need to investigate and retrace name). Note especially that <filename class="directory">/tools/lib</filename>
your steps to find out where the problem is and correct it. There is no point in appears as the prefix of our dynamic linker. If you did not receive the output
continuing until this is done. Most likely something went wrong with the specs as shown above, or received no output at all, then something is seriously wrong.
file amendment above. Note especially that <filename>/tools/lib</filename> You will need to investigate and retrace your steps to find out where the
appears as the prefix of our dynamic linker. Of course, if you are working on a problem is and correct it. There is no point in continuing until this is done.
platform where the name of the dynamic linker is something other than First, redo the sanity check using <userinput>gcc</userinput> instead of
<filename>ld-linux.so.2</filename>, then the output will be slightly <userinput>cc</userinput>. If this works it means the
different.</para> <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> <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 <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> 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> </sect2>

View File

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