Author: jhuntwork
Date: 2007-10-06 19:57:26 -0600 (Sat, 06 Oct 2007)
New Revision: 8404
Modified:
branches/jh/BOOK/chapter01/changelog.xml
branches/jh/BOOK/chapter05/gcc-pass1.xml
branches/jh/BOOK/chapter05/gcc-pass2.xml
branches/jh/BOOK/chapter06/gcc.xml
branches/jh/BOOK/general.ent
Log:
Moved GCC's bootstrap to pass 2.
Modified: branches/jh/BOOK/chapter01/changelog.xml
===================================================================
--- branches/jh/BOOK/chapter01/changelog.xml 2007-10-06 18:57:15 UTC (rev
8403)
+++ branches/jh/BOOK/chapter01/changelog.xml 2007-10-07 01:57:26 UTC (rev
8404)
@@ -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>
Modified: branches/jh/BOOK/chapter05/gcc-pass1.xml
===================================================================
--- branches/jh/BOOK/chapter05/gcc-pass1.xml 2007-10-06 18:57:15 UTC (rev
8403)
+++ branches/jh/BOOK/chapter05/gcc-pass1.xml 2007-10-07 01:57:26 UTC (rev
8404)
@@ -53,7 +53,8 @@
<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 @@
</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>
Modified: branches/jh/BOOK/chapter05/gcc-pass2.xml
===================================================================
--- branches/jh/BOOK/chapter05/gcc-pass2.xml 2007-10-06 18:57:15 UTC (rev
8403)
+++ branches/jh/BOOK/chapter05/gcc-pass2.xml 2007-10-07 01:57:26 UTC (rev
8404)
@@ -80,16 +80,6 @@
<screen><userinput remap="pre">cp -v gcc/Makefile.in{,.orig}
sed '[EMAIL PROTECTED]/[EMAIL PROTECTED] 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 @@
--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 @@
</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>
Modified: branches/jh/BOOK/chapter06/gcc.xml
===================================================================
--- branches/jh/BOOK/chapter06/gcc.xml 2007-10-06 18:57:15 UTC (rev 8403)
+++ branches/jh/BOOK/chapter06/gcc.xml 2007-10-07 01:57:26 UTC (rev 8404)
@@ -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
Modified: branches/jh/BOOK/general.ent
===================================================================
--- branches/jh/BOOK/general.ent 2007-10-06 18:57:15 UTC (rev 8403)
+++ branches/jh/BOOK/general.ent 2007-10-07 01:57:26 UTC (rev 8404)
@@ -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}]" -->
--
http://linuxfromscratch.org/mailman/listinfo/lfs-book
FAQ: http://www.linuxfromscratch.org/lfs/faq.html
Unsubscribe: See the above information page