aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Huntwork <jhuntwork@linuxfromscratch.org>2008-10-19 19:19:00 +0000
committerJeremy Huntwork <jhuntwork@linuxfromscratch.org>2008-10-19 19:19:00 +0000
commit8f54b5acafc6e28aeb6f6fe580df72b63e18373c (patch)
treea3e6b099b4a078e206a7aec1e60540125899c053
parentae6a4f86bc179ac848719361c9975f5234eee922 (diff)
Moved gcc's bootstrap in the jh branch back to pass 1
git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/jh/BOOK@8674 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
-rw-r--r--chapter01/changelog.xml12
-rw-r--r--chapter05/gcc-pass1.xml17
-rw-r--r--chapter05/gcc-pass2.xml30
3 files changed, 40 insertions, 19 deletions
diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml
index ecb10ad34..ac576c1c2 100644
--- a/chapter01/changelog.xml
+++ b/chapter01/changelog.xml
@@ -38,6 +38,17 @@
-->
<listitem>
+ <para>2008-10-19</para>
+ <itemizedlist>
+ <listitem>
+ <para>[jhuntwork] - Move GCC's bootstrap back to pass 1 to correspond more closely
+ with trunk. Cross compilation methods in the future can address the issues originally
+ bypassed by moving the bootstrap to pass 2.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
<para>2008-10-18</para>
<itemizedlist>
<listitem>
@@ -48,7 +59,6 @@
</itemizedlist>
</listitem>
-
<listitem>
<para>2008-10-15</para>
<itemizedlist>
diff --git a/chapter05/gcc-pass1.xml b/chapter05/gcc-pass1.xml
index 8452e8b19..be22cb7cf 100644
--- a/chapter05/gcc-pass1.xml
+++ b/chapter05/gcc-pass1.xml
@@ -112,18 +112,15 @@ cd ../gcc-build</userinput></screen>
</listitem>
</varlistentry>
- <varlistentry>
- <term><parameter>--disable-bootstrap</parameter></term>
- <listitem>
- <para>Bootstrapping the compiler is now the default for GCC. However,
- bootstrapping now would mean using our new Binutils to link against
- the host's libc, which in some cases produces unexpected results.</para>
- </listitem>
- </varlistentry>
-
</variablelist>
- <para>Continue with compiling by running:</para>
+ <para>The following command will compile GCC not once, but several times. It
+ uses the programs compiled in a first round to compile itself a second time,
+ and then again a third time. It then compares these second and third compiles
+ to make sure it can reproduce itself flawlessly. This is called
+ <quote>bootstrapping</quote>. Building GCC in this way ensures that it was
+ compiled correctly and is now the default configuration for the released
+ package. Continue with compiling by running:</para>
<screen><userinput remap="make">make</userinput></screen>
diff --git a/chapter05/gcc-pass2.xml b/chapter05/gcc-pass2.xml
index 9a47c483a..bbdda355f 100644
--- a/chapter05/gcc-pass2.xml
+++ b/chapter05/gcc-pass2.xml
@@ -80,6 +80,16 @@ Ask your system administrator to create more.</computeroutput></screen>
<screen><userinput remap="pre">cp -v gcc/Makefile.in{,.orig}
sed 's@\./fixinc\.sh@-c true@' gcc/Makefile.in.orig &gt; gcc/Makefile.in</userinput></screen>
+ <para>The bootstrap build performed in <xref linkend="ch-tools-gcc-pass1"/>
+ built GCC with the <option>-fomit-frame-pointer</option> compiler flag.
+ Non-bootstrap builds omit this flag by default, so apply the following
+ <command>sed</command> to use it in order to ensure consistent compiler
+ builds:</para>
+
+<screen><userinput remap="pre">cp -v gcc/Makefile.in{,.tmp}
+sed 's/^XCFLAGS =$/&amp; -fomit-frame-pointer/' gcc/Makefile.in.tmp \
+ &gt; gcc/Makefile.in</userinput></screen>
+
<para>The following command will change the location of GCC's default
dynamic linker to use the one we installed in
<filename class="directory">/tools</filename>. It also removes <filename
@@ -146,7 +156,8 @@ cd ../gcc-build</userinput></screen>
--with-local-prefix=/tools --enable-clocale=gnu \
--enable-shared --enable-threads=posix \
--enable-__cxa_atexit --enable-languages=c,c++ \
- --disable-libstdcxx-pch --disable-multilib</userinput></screen>
+ --disable-libstdcxx-pch --disable-multilib \
+ --disable-bootstrap</userinput></screen>
<variablelist>
<title>The meaning of the new configure options:</title>
@@ -201,15 +212,18 @@ cd ../gcc-build</userinput></screen>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><parameter>--disable-bootstrap</parameter></term>
+ <listitem>
+ <para>Bootstrapping the compiler is now the default for GCC. However,
+ our build method should provide us with a solid compiler without the
+ need to bootstrap each time.</para>
+ </listitem>
+ </varlistentry>
+
</variablelist>
- <para>The following command will compile GCC not once, but several times. It
- uses the programs compiled in a first round to compile itself a second time,
- and then again a third time. It then compares these second and third compiles
- to make sure it can reproduce itself flawlessly. This is called
- <quote>bootstrapping</quote>. Building GCC in this way ensures that it was
- compiled correctly and is now the default configuration for the released
- package. Continue with compiling by running:</para>
+ <para>Compile the package:</para>
<screen><userinput remap="make">make</userinput></screen>