* Fix bug 1061 by dynamically linking the pass1 toolchain

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@4741 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
This commit is contained in:
Matthew Burgess 2005-03-13 15:49:41 +00:00
parent e2c85b1176
commit 516b668fa0
4 changed files with 20 additions and 47 deletions

View File

@ -82,6 +82,9 @@ first a summary, then a detailed log.</para>
</itemizedlist>
</listitem>
<listitem><para>March 13, 2005 [matt]: Dynamically link the pass1 toolchain to
workaround bug 1061 and remove all related explanatory text</para></listitem>
<listitem><para>March 12, 2005 [matt]: Upgraded to udev-054</para></listitem>
<listitem><para>March 12, 2005 [matt]: Upgraded to findutils-4.2.19</para>

View File

@ -54,8 +54,7 @@ command like this: <userinput>time { ./configure ... &amp;&amp; ...
<para>Now prepare Binutils for compilation:</para>
<screen><userinput>../binutils-&binutils-version;/configure --prefix=/tools \
--disable-nls</userinput></screen>
<screen><userinput>../binutils-&binutils-version;/configure --prefix=/tools --disable-nls</userinput></screen>
<para>The meaning of the configure options:</para>
@ -68,36 +67,14 @@ programs in the <filename class="directory">/tools</filename> directory.</para><
<varlistentry>
<term><parameter>--disable-nls</parameter></term>
<listitem><para>This disables internationalization. This is not needed
for the static programs, and NLS can cause problems when linking
statically.</para></listitem>
<listitem><para>This disables internationalization. This is not needed for the
temporary tools.</para></listitem>
</varlistentry>
</variablelist>
<para>Continue with compiling the package:</para>
<screen><userinput>make configure-host
make LDFLAGS="-all-static"</userinput></screen>
<para>The meaning of the make parameters:</para>
<variablelist>
<varlistentry>
<term><parameter>configure-host</parameter></term>
<listitem><para>This forces all subdirectories to be configured
immediately. A statically-linked build will fail without it. Use this
option to work around the problem.</para></listitem>
</varlistentry>
<varlistentry>
<term><parameter>LDFLAGS="-all-static"</parameter></term>
<listitem><para>This tells the linker that all Binutils programs
should be linked statically. However, strictly speaking,
<parameter>"-all-static"</parameter> is passed to the
<command>libtool</command> program, which then passes
<parameter>"-static"</parameter> to the linker.</para></listitem>
</varlistentry>
</variablelist>
<screen><userinput>make</userinput></screen>
<para>Compilation is now complete. Ordinarily we would now run the
test suite, but at this early stage the test suite framework (Tcl,
@ -113,7 +90,7 @@ first pass will soon be replaced by those from the second.</para>
later on:</para>
<screen><userinput>make -C ld clean
make -C ld LDFLAGS="-all-static" LIB_PATH=/tools/lib</userinput></screen>
make -C ld LIB_PATH=/tools/lib</userinput></screen>
<para>The meaning of the make parameters:</para>
@ -126,8 +103,7 @@ subdirectory.</para></listitem>
</varlistentry>
<varlistentry>
<term><parameter>-C ld LDFLAGS="-all-static"
LIB_PATH=/tools/lib</parameter></term>
<term><parameter>-C ld LIB_PATH=/tools/lib</parameter></term>
<listitem><para>This option rebuilds everything in the
<filename class="directory">ld</filename> subdirectory. Specifying
the <envar>LIB_PATH</envar> Makefile variable on the command

View File

@ -63,16 +63,12 @@ system.</para>
<varlistentry>
<term><parameter>--enable-shared</parameter></term>
<listitem><para>This switch may seem counter-intuitive at first.
However, this switch allows the building of
<listitem><para>This switch allows the building of
<filename class="libraryfile">libgcc_s.so.1</filename> and
<filename class="libraryfile">libgcc_eh.a</filename>, and having
<filename class="libraryfile">libgcc_eh.a</filename> available ensures that the configure
script for Glibc (the next package we compile) produces the proper
results. Note that the GCC binaries will still be linked statically
because this is controlled by the <parameter>-static</parameter> value of
the <envar>BOOT_LDFLAGS</envar> variable in the next
step.</para></listitem>
<filename class="libraryfile">libgcc_eh.a</filename>. Having
<filename class="libraryfile">libgcc_eh.a</filename> available ensures that the
configure script for Glibc (the next package we compile) produces the proper
results.</para></listitem>
</varlistentry>
<varlistentry>
@ -86,16 +82,11 @@ tarball.</para></listitem>
<para>Continue with compiling the package:</para>
<screen><userinput>make BOOT_LDFLAGS="-static" bootstrap</userinput></screen>
<screen><userinput>make bootstrap</userinput></screen>
<para>The meaning of the make parameters:</para>
<variablelist>
<varlistentry>
<term><parameter>BOOT_LDFLAGS="-static"</parameter></term>
<listitem><para>This tells GCC to link its programs statically.</para></listitem>
</varlistentry>
<varlistentry>
<term><parameter>bootstrap</parameter></term>
<listitem><para>This target does not just compile GCC, but compiles it

View File

@ -175,7 +175,10 @@ class="directory">/usr</filename>, perform a quick changeover of the
toolchain defaults, then proceed in building the rest of the target
LFS system.</para>
<sect2>
<!-- Removed as part of the fix for bug 1061 - we no longer build pass1
packages statically, therefore this explanation isn't required -->
<!--<sect2>
<title>Notes on Static Linking</title>
<para>Besides their specific task, most programs have to perform many
@ -218,7 +221,7 @@ programs can be used independently of the host system. However, it is
worth noting that an overall successful LFS build can still be
achieved when the first two packages are built dynamically.</para>
</sect2>
</sect2>-->
</sect1>