diff options
author | Jeremy Huntwork <jhuntwork@linuxfromscratch.org> | 2007-10-07 01:57:26 +0000 |
---|---|---|
committer | Jeremy Huntwork <jhuntwork@linuxfromscratch.org> | 2007-10-07 01:57:26 +0000 |
commit | cdaf9813abba50323a1658a58967f9966114baf9 (patch) | |
tree | 754c809ede984266319a02a7fe4ead13739e804e | |
parent | 8c3423002cbf21db4016d4044f8d6441752f996a (diff) |
Moved GCC's bootstrap to pass 2.
git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/jh/BOOK@8404 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
-rw-r--r-- | chapter01/changelog.xml | 9 | ||||
-rw-r--r-- | chapter05/gcc-pass1.xml | 20 | ||||
-rw-r--r-- | chapter05/gcc-pass2.xml | 34 | ||||
-rw-r--r-- | chapter06/gcc.xml | 8 | ||||
-rw-r--r-- | general.ent | 4 |
5 files changed, 37 insertions, 38 deletions
diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 1b2ed4583..cddd36e65 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -37,6 +37,15 @@ --> <listitem> + <para>2007-10-06</para> + <itemizedlist> + <listitem> + <para>[jhuntwork] - Moved GCC's bootstrap to pass 2.</para> + </listitem> + </itemizedlist> + </listitem> + + <listitem> <para>2007-10-05</para> <itemizedlist> <listitem> diff --git a/chapter05/gcc-pass1.xml b/chapter05/gcc-pass1.xml index cf3d9f14e..78fe83afb 100644 --- a/chapter05/gcc-pass1.xml +++ b/chapter05/gcc-pass1.xml @@ -53,7 +53,8 @@ cd ../gcc-build</userinput></screen> <screen><userinput remap="configure">CC="gcc -B/usr/bin/" ../gcc-&gcc-version;/configure --prefix=/tools \ --with-local-prefix=/tools --disable-nls --disable-shared \ - --enable-languages=c --disable-multilib</userinput></screen> + --enable-languages=c --disable-multilib \ + --disable-bootstrap</userinput></screen> <variablelist> <title>The meaning of the configure options:</title> @@ -102,15 +103,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, + 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>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>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 83f59578d..ba3dfb97d 100644 --- a/chapter05/gcc-pass2.xml +++ b/chapter05/gcc-pass2.xml @@ -80,16 +80,6 @@ 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,8 +136,7 @@ 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 \ - --disable-bootstrap</userinput></screen> + --disable-libstdcxx-pch --disable-multilib</userinput></screen> <variablelist> <title>The meaning of the new configure options:</title> @@ -202,25 +191,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>Compile the package:</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> - <para>There is no need to use the <parameter>bootstrap</parameter> target - now because the compiler being used to compile this GCC was built from - the exact same version of the GCC sources used earlier.</para> - <para>Compilation is now complete. As previously mentioned, running the test suites for the temporary tools compiled in this chapter is not mandatory. To run the GCC test suite anyway, use the following command:</para> diff --git a/chapter06/gcc.xml b/chapter06/gcc.xml index 9f783f8d1..9f6c01e60 100644 --- a/chapter06/gcc.xml +++ b/chapter06/gcc.xml @@ -48,13 +48,17 @@ <screen><userinput remap="pre">sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in</userinput></screen> - <para>The bootstrap build performed in <xref linkend="ch-tools-gcc-pass1"/> + <para>For x86 machines, the bootstrap build performed in + <xref linkend="ch-tools-gcc-pass2"/> 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">sed -i 's/^XCFLAGS =$/& -fomit-frame-pointer/' gcc/Makefile.in</userinput></screen> +<screen><userinput remap="pre">case `uname -m` in + i?86) sed -i 's/^XCFLAGS =$/& -fomit-frame-pointer/' \ + gcc/Makefile.in ;; +esac</userinput></screen> <para>The <command>fixincludes</command> script is known to occasionally erroneously attempt to "fix" the system headers installed so far. As diff --git a/general.ent b/general.ent index b6c0002d8..7c2c1f857 100644 --- a/general.ent +++ b/general.ent @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!ENTITY version "SVN-JH-20071005"> -<!ENTITY releasedate "October 5, 2007"> +<!ENTITY version "SVN-JH-20071006"> +<!ENTITY releasedate "October 6, 2007"> <!ENTITY milestone "7.0"> <!ENTITY generic-version "development"> <!-- Use "development", "testing", or "x.y[-pre{x}]" --> |