aboutsummaryrefslogtreecommitdiffstats
path: root/chapter05
diff options
context:
space:
mode:
authorJeremy Huntwork <jhuntwork@linuxfromscratch.org>2006-01-30 06:50:11 +0000
committerJeremy Huntwork <jhuntwork@linuxfromscratch.org>2006-01-30 06:50:11 +0000
commit62d3362b8de4cceb37f1e6ed65323d5561723fef (patch)
treec54b462c28f2e0776a14133d4e9250578661c3e0 /chapter05
parentb87ea8726bbd62d4fde5a39a596d26f959d0ef59 (diff)
Adjust binutils-pass1 so we don't need to hang on to its source directories.
Also use 'gcc -dumpmachine' instead of the MACHTYPE var. git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@7316 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
Diffstat (limited to 'chapter05')
-rw-r--r--chapter05/adjusting.xml25
-rw-r--r--chapter05/binutils-pass1.xml15
2 files changed, 15 insertions, 25 deletions
diff --git a/chapter05/adjusting.xml b/chapter05/adjusting.xml
index b48a17128..f512b6cf4 100644
--- a/chapter05/adjusting.xml
+++ b/chapter05/adjusting.xml
@@ -15,27 +15,20 @@
these libraries. In order to accomplish this, the linker and the
compiler's specs file need to be adjusted.</para>
- <para>The linker, adjusted at the end of the first pass of Binutils,
- is installed by running the following command from within the
- <filename class="directory">binutils-build</filename> directory:</para>
+ <para>The linker, adjusted at the end of the first pass of Binutils, needs
+ to be renamed so that it can be properly found and used. First, backup the
+ original linker, then replace it with the adjusted linker. We'll also
+ create a link to its counterpart in <filename class="directory">
+ /tools/$(gcc -dumpmachine)/bin</filename></para>
-<screen><userinput>make -C ld install</userinput></screen>
+<screen><userinput>mv -v /tools/bin/{ld,ld-old}
+mv -v /tools/$(gcc -dumpmachine)/bin/{ld,ld-old}
+mv -v /tools/bin/{ld-new,ld}
+ln -sv /tools/bin/ld /tools/$(gcc -dumpmachine)/bin/ld</userinput></screen>
<para>From this point onwards, everything will link only against the
libraries in <filename class="directory">/tools/lib</filename>.</para>
- <note>
- <para>If the earlier warning to retain the Binutils source and
- build directories from the first pass was missed, ignore the above
- command. This results in a small chance that the subsequent testing
- programs will link against libraries on the host. This is not ideal,
- but it is not a major problem. The situation is corrected when the
- second pass of Binutils is installed later.</para>
- </note>
-
- <para>Now that the adjusted linker is installed, the Binutils build and source
- directories should be removed.</para>
-
<para>The next task is to point GCC to the new dynamic linker. This is done by
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
diff --git a/chapter05/binutils-pass1.xml b/chapter05/binutils-pass1.xml
index 4435cfca0..a395c3dfe 100644
--- a/chapter05/binutils-pass1.xml
+++ b/chapter05/binutils-pass1.xml
@@ -105,7 +105,8 @@ cd ../binutils-build</userinput></screen>
later on:</para>
<screen><userinput>make -C ld clean
-make -C ld LIB_PATH=/tools/lib</userinput></screen>
+make -C ld LDFLAGS="-s" LIB_PATH=/tools/lib
+cp -v ld/ld-new /tools/bin</userinput></screen>
<variablelist>
<title>The meaning of the make parameters:</title>
@@ -120,10 +121,12 @@ make -C ld LIB_PATH=/tools/lib</userinput></screen>
</varlistentry>
<varlistentry>
- <term><parameter>-C ld LIB_PATH=/tools/lib</parameter></term>
+ <term><parameter>-C ld LDFLAGS="-s" LIB_PATH=/tools/lib</parameter></term>
<listitem>
<para>This option rebuilds everything in the <filename
- class="directory">ld</filename> subdirectory. Specifying the
+ class="directory">ld</filename> subdirectory. The
+ <envar>LDFLAGS</envar> variable will build a static version of
+ <command>ld</command>. Specifying the
<envar>LIB_PATH</envar> Makefile variable on the command line
allows us to override the default value and point it to the
temporary tools location. The value of this variable specifies
@@ -134,12 +137,6 @@ make -C ld LIB_PATH=/tools/lib</userinput></screen>
</variablelist>
- <warning>
- <para><emphasis>Do not</emphasis> remove the Binutils build and source
- directories yet. These will be needed again in their current state later
- in this chapter.</para>
- </warning>
-
</sect2>
<sect2 role="content">