uniformized text of 'locking' and 'adjusting'

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@2677 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
This commit is contained in:
Alex Gronenwoud 2003-08-25 21:41:50 +00:00
parent b0dbf73848
commit 1f304328b4
2 changed files with 26 additions and 32 deletions

View File

@ -2,38 +2,33 @@
<title>"Locking in" Glibc</title> <title>"Locking in" Glibc</title>
<?dbhtml filename="lockingglibc.html" dir="chapter05"?> <?dbhtml filename="lockingglibc.html" dir="chapter05"?>
<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2> <para>Now that the temporary C libraries have been installed, we want all
the tools compiled in the rest of this chapter to be linked against these
libraries. To accomplish this, we need to adjust the linker's scripts and the
compiler's specs file.</para>
<sect2> <para>First install the adjusted linker scripts by running the following from
<title>Installation of the linker scripts</title> within the <filename class="directory">binutils-build</filename>
directory:</para>
<para>Run the following command from within the <filename
class="directory">binutils-build</filename> directory:</para>
<para><screen><userinput>make -C ld install-data-local</userinput></screen></para> <para><screen><userinput>make -C ld install-data-local</userinput></screen></para>
<para>This installs the adjusted linker scripts. Remember they were adjusted <para>These scripts were adjusted a little while back, at the end of the first
a little while back, at the end of the first pass of Binutils? The linker pass of Binutils, and contain no mention of <filename>/lib</filename>,
scripts now contain no mention of <filename>/lib</filename>,
<filename>/usr/lib</filename> or <filename>/usr/local/lib</filename>. <filename>/usr/lib</filename> or <filename>/usr/local/lib</filename>.
From this point onwards everything will link <emphasis>only</emphasis> From this point onwards everything will link <emphasis>only</emphasis>
against the libraries in <filename>/stage1/lib</filename>.</para> against the libraries in <filename>/stage1/lib</filename>.</para>
<para>You can now remove Binutils' build and source directories.</para> <para>You can now remove Binutils' build and source directories.</para>
</sect2> <para>The other thing to do is to amend our GCC specs file so that it points
<sect2>
<title>Amending GCC's specs file</title>
<para>The final thing to do is to amend our GCC specs file so that it points
to the new dynamic linker. A simple sed will accomplish this:</para> to the new dynamic linker. A simple sed will accomplish this:</para>
<para><screen><userinput>SPECFILE=/stage1/lib/gcc-lib/*/*/specs <para><screen><userinput>SPECFILE=/stage1/lib/gcc-lib/*/*/specs
sed -e 's@/lib/ld.so.1@/stage1/lib/ld.so.1@g' \ sed -e 's@/lib/ld.so.1@/stage1/lib/ld.so.1@g' \
&nbsp;&nbsp;&nbsp;&nbsp;-e 's@/lib/ld-linux.so.2@/stage1/lib/ld-linux.so.2@g' \ &nbsp;&nbsp;&nbsp;&nbsp;-e 's@/lib/ld-linux.so.2@/stage1/lib/ld-linux.so.2@g' \
&nbsp;&nbsp;&nbsp;&nbsp;$SPECFILE > XX &nbsp;&nbsp;&nbsp;&nbsp;$SPECFILE > tempspecfile
mv XX $SPECFILE mv tempspecfile $SPECFILE
unset SPECFILE</userinput></screen></para> unset SPECFILE</userinput></screen></para>
<para>We recommend that you cut-and-paste the above rather than try and type <para>We recommend that you cut-and-paste the above rather than try and type
@ -43,7 +38,5 @@ it all in. Or you can edit the specs file by hand if you want to: just replace
<para>This completes the installation of the self-contained toolchain, which <para>This completes the installation of the self-contained toolchain, which
can now be used to build the rest of the temporary tools.</para> can now be used to build the rest of the temporary tools.</para>
</sect2>
</sect1> </sect1>

View File

@ -1,20 +1,20 @@
<sect1 id="ch06-adjustingtoolchain"> <sect1 id="ch06-adjustingtoolchain">
<title>Adjusting toolchain</title> <title>Re-adjusting the toolchain</title>
<?dbhtml filename="adjustingtoolchain.html" dir="chapter06"?> <?dbhtml filename="adjustingtoolchain.html" dir="chapter06"?>
<para>Now that we have compiled all the necessary tools, it is time to <para>Now that the new C libraries have been installed, it's time to re-adjust
re-adjust our toolchain. We will set it up so that it will link any newly our toolchain. We'll adjust it so that it will link any newly compiled program
compiled program against the new Glibc. Basically, this is the reverse of against the new C libraries. Basically, this is the reverse of what we did
what we did in the "Locking in" stage in the beginning of chapter 5.</para> in the "Locking in" stage in the beginning of the previous chapter.</para>
<para>The first thing to do is to adjust the linker scripts. For this we <para>The first thing to do is to adjust the linker scripts. For this we
retained the <filename class="directory">binutils-build</filename> retained the source and build directories from the second pass over Binutils.
directory from the second pass over Binutils. Run the following:</para> Install the adjusted linker scripts by running the following from within the
<filename class="directory">binutils-build</filename> directory:</para>
<para><screen><userinput>cd binutils-build <para><screen><userinput>make -C ld INSTALL=/stage1/bin/install install-data-local</userinput></screen></para>
make -C ld INSTALL=/stage1/bin/install install-data-local</userinput></screen></para>
<para>This installs the adjusted linker scripts. The linker scripts contain <para>The linker scripts now contain
no mention of <filename class="directory">/stage1/lib</filename> anymore. no mention of <filename class="directory">/stage1/lib</filename> anymore.
From now on every compiled program will link <emphasis>only</emphasis> From now on every compiled program will link <emphasis>only</emphasis>
against the libraries in <filename>/usr/lib</filename> and against the libraries in <filename>/usr/lib</filename> and
@ -32,12 +32,13 @@ this:</para>
<para><screen><userinput>SPECFILE=/stage1/lib/gcc-lib/*/*/specs <para><screen><userinput>SPECFILE=/stage1/lib/gcc-lib/*/*/specs
sed -e 's@/stage1/lib/ld.so.1@/lib/ld.so.1@g' \ sed -e 's@/stage1/lib/ld.so.1@/lib/ld.so.1@g' \
&nbsp;&nbsp;&nbsp;&nbsp;-e 's@/stage1/lib/ld-linux.so.2@/lib/ld-linux.so.2@g' $SPECFILE > XX &nbsp;&nbsp;&nbsp;&nbsp;-e 's@/stage1/lib/ld-linux.so.2@/lib/ld-linux.so.2@g'
mv XX $SPECFILE &nbsp;&nbsp;&nbsp;&nbsp;$SPECFILE > newspecfile
mv newspecfile $SPECFILE
unset SPECFILE</userinput></screen></para> unset SPECFILE</userinput></screen></para>
<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 linker scripts and the specs file o before, it is a good idea to check the linker scripts and the specs file to
ensure the intended changes were actually made.</para> ensure the intended changes were actually made.</para>
<para>Note that the linker scripts will still contain a reference to <para>Note that the linker scripts will still contain a reference to