diff options
author | Jeremy Huntwork <jhuntwork@linuxfromscratch.org> | 2008-10-19 19:19:00 +0000 |
---|---|---|
committer | Jeremy Huntwork <jhuntwork@linuxfromscratch.org> | 2008-10-19 19:19:00 +0000 |
commit | 8f54b5acafc6e28aeb6f6fe580df72b63e18373c (patch) | |
tree | a3e6b099b4a078e206a7aec1e60540125899c053 | |
parent | ae6a4f86bc179ac848719361c9975f5234eee922 (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.xml | 12 | ||||
-rw-r--r-- | chapter05/gcc-pass1.xml | 17 | ||||
-rw-r--r-- | chapter05/gcc-pass2.xml | 30 |
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 > 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 =$/& -fomit-frame-pointer/' gcc/Makefile.in.tmp \ + > 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> |