mirror of
https://git.linuxfromscratch.org/lfs.git
synced 2025-06-19 19:59:20 +01:00
* 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:
parent
e2c85b1176
commit
516b668fa0
@ -82,6 +82,9 @@ first a summary, then a detailed log.</para>
|
|||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</listitem>
|
</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 udev-054</para></listitem>
|
||||||
|
|
||||||
<listitem><para>March 12, 2005 [matt]: Upgraded to findutils-4.2.19</para>
|
<listitem><para>March 12, 2005 [matt]: Upgraded to findutils-4.2.19</para>
|
||||||
|
@ -54,8 +54,7 @@ command like this: <userinput>time { ./configure ... && ...
|
|||||||
|
|
||||||
<para>Now prepare Binutils for compilation:</para>
|
<para>Now prepare Binutils for compilation:</para>
|
||||||
|
|
||||||
<screen><userinput>../binutils-&binutils-version;/configure --prefix=/tools \
|
<screen><userinput>../binutils-&binutils-version;/configure --prefix=/tools --disable-nls</userinput></screen>
|
||||||
--disable-nls</userinput></screen>
|
|
||||||
|
|
||||||
<para>The meaning of the configure options:</para>
|
<para>The meaning of the configure options:</para>
|
||||||
|
|
||||||
@ -68,36 +67,14 @@ programs in the <filename class="directory">/tools</filename> directory.</para><
|
|||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><parameter>--disable-nls</parameter></term>
|
<term><parameter>--disable-nls</parameter></term>
|
||||||
<listitem><para>This disables internationalization. This is not needed
|
<listitem><para>This disables internationalization. This is not needed for the
|
||||||
for the static programs, and NLS can cause problems when linking
|
temporary tools.</para></listitem>
|
||||||
statically.</para></listitem>
|
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
</variablelist>
|
</variablelist>
|
||||||
|
|
||||||
<para>Continue with compiling the package:</para>
|
<para>Continue with compiling the package:</para>
|
||||||
|
|
||||||
<screen><userinput>make configure-host
|
<screen><userinput>make</userinput></screen>
|
||||||
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>
|
|
||||||
|
|
||||||
<para>Compilation is now complete. Ordinarily we would now run the
|
<para>Compilation is now complete. Ordinarily we would now run the
|
||||||
test suite, but at this early stage the test suite framework (Tcl,
|
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>
|
later on:</para>
|
||||||
|
|
||||||
<screen><userinput>make -C ld clean
|
<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>
|
<para>The meaning of the make parameters:</para>
|
||||||
|
|
||||||
@ -126,8 +103,7 @@ subdirectory.</para></listitem>
|
|||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><parameter>-C ld LDFLAGS="-all-static"
|
<term><parameter>-C ld LIB_PATH=/tools/lib</parameter></term>
|
||||||
LIB_PATH=/tools/lib</parameter></term>
|
|
||||||
<listitem><para>This option rebuilds everything in the
|
<listitem><para>This option rebuilds everything in the
|
||||||
<filename class="directory">ld</filename> subdirectory. Specifying
|
<filename class="directory">ld</filename> subdirectory. Specifying
|
||||||
the <envar>LIB_PATH</envar> Makefile variable on the command
|
the <envar>LIB_PATH</envar> Makefile variable on the command
|
||||||
|
@ -63,16 +63,12 @@ system.</para>
|
|||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><parameter>--enable-shared</parameter></term>
|
<term><parameter>--enable-shared</parameter></term>
|
||||||
<listitem><para>This switch may seem counter-intuitive at first.
|
<listitem><para>This switch allows the building of
|
||||||
However, this switch allows the building of
|
|
||||||
<filename class="libraryfile">libgcc_s.so.1</filename> and
|
<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>. Having
|
||||||
<filename class="libraryfile">libgcc_eh.a</filename> available ensures that the configure
|
<filename class="libraryfile">libgcc_eh.a</filename> available ensures that the
|
||||||
script for Glibc (the next package we compile) produces the proper
|
configure script for Glibc (the next package we compile) produces the proper
|
||||||
results. Note that the GCC binaries will still be linked statically
|
results.</para></listitem>
|
||||||
because this is controlled by the <parameter>-static</parameter> value of
|
|
||||||
the <envar>BOOT_LDFLAGS</envar> variable in the next
|
|
||||||
step.</para></listitem>
|
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
@ -86,16 +82,11 @@ tarball.</para></listitem>
|
|||||||
|
|
||||||
<para>Continue with compiling the package:</para>
|
<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>
|
<para>The meaning of the make parameters:</para>
|
||||||
|
|
||||||
<variablelist>
|
<variablelist>
|
||||||
<varlistentry>
|
|
||||||
<term><parameter>BOOT_LDFLAGS="-static"</parameter></term>
|
|
||||||
<listitem><para>This tells GCC to link its programs statically.</para></listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><parameter>bootstrap</parameter></term>
|
<term><parameter>bootstrap</parameter></term>
|
||||||
<listitem><para>This target does not just compile GCC, but compiles it
|
<listitem><para>This target does not just compile GCC, but compiles it
|
||||||
|
@ -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
|
toolchain defaults, then proceed in building the rest of the target
|
||||||
LFS system.</para>
|
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>
|
<title>Notes on Static Linking</title>
|
||||||
|
|
||||||
<para>Besides their specific task, most programs have to perform many
|
<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
|
worth noting that an overall successful LFS build can still be
|
||||||
achieved when the first two packages are built dynamically.</para>
|
achieved when the first two packages are built dynamically.</para>
|
||||||
|
|
||||||
</sect2>
|
</sect2>-->
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user