Changeset 8404

Show
Ignore:
Timestamp:
10/06/07 19:57:26 (1 year ago)
Author:
jhuntwork
Message:

Moved GCC's bootstrap to pass 2.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/jh/BOOK/chapter01/changelog.xml

    r8401 r8404  
    3838 
    3939     <listitem> 
     40      <para>2007-10-06</para> 
     41      <itemizedlist> 
     42        <listitem> 
     43          <para>[jhuntwork] - Moved GCC's bootstrap to pass 2.</para> 
     44        </listitem> 
     45      </itemizedlist> 
     46    </listitem> 
     47 
     48     <listitem> 
    4049      <para>2007-10-05</para> 
    4150      <itemizedlist> 
  • branches/jh/BOOK/chapter05/gcc-pass1.xml

    r8392 r8404  
    5454<screen><userinput remap="configure">CC="gcc -B/usr/bin/" ../gcc-&gcc-version;/configure --prefix=/tools \ 
    5555    --with-local-prefix=/tools --disable-nls --disable-shared \ 
    56     --enable-languages=c --disable-multilib</userinput></screen> 
     56    --enable-languages=c --disable-multilib \ 
     57    --disable-bootstrap</userinput></screen> 
    5758 
    5859    <variablelist> 
     
    103104      </varlistentry> 
    104105 
     106      <varlistentry> 
     107        <term><parameter>--disable-bootstrap</parameter></term> 
     108        <listitem> 
     109          <para>Bootstrapping the compiler is now the default for GCC. However, 
     110          bootstrapping now would mean using our new Binutils to link against 
     111          the host's libc, which in some cases produces unexpected results.</para> 
     112        </listitem> 
     113      </varlistentry> 
     114 
    105115    </variablelist> 
    106116 
    107     <para>The following command will compile GCC not once, but several times. It 
    108     uses the programs compiled in a first round to compile itself a second time, 
    109     and then again a third time. It then compares these second and third compiles 
    110     to make sure it can reproduce itself flawlessly. This is called 
    111     <quote>bootstrapping</quote>. Building GCC in this way ensures that it was 
    112     compiled correctly and is now the default configuration for the released 
    113     package. Continue with compiling by running:</para> 
     117    <para>Continue with compiling by running:</para> 
    114118 
    115119<screen><userinput remap="make">make</userinput></screen> 
  • branches/jh/BOOK/chapter05/gcc-pass2.xml

    r8392 r8404  
    8080<screen><userinput remap="pre">cp -v gcc/Makefile.in{,.orig} 
    8181sed 's@\./fixinc\.sh@-c true@' gcc/Makefile.in.orig &gt; gcc/Makefile.in</userinput></screen> 
    82  
    83     <para>The bootstrap build performed in <xref linkend="ch-tools-gcc-pass1"/> 
    84     built GCC with the <option>-fomit-frame-pointer</option> compiler flag. 
    85     Non-bootstrap builds omit this flag by default, so apply the following 
    86     <command>sed</command> to use it in order to ensure consistent compiler 
    87     builds:</para> 
    88  
    89 <screen><userinput remap="pre">cp -v gcc/Makefile.in{,.tmp} 
    90 sed 's/^XCFLAGS =$/&amp; -fomit-frame-pointer/' gcc/Makefile.in.tmp \ 
    91   &gt; gcc/Makefile.in</userinput></screen> 
    9282 
    9383    <para>The following command will change the location of GCC's default 
     
    147137    --enable-shared --enable-threads=posix \ 
    148138    --enable-__cxa_atexit --enable-languages=c,c++ \ 
    149     --disable-libstdcxx-pch --disable-multilib \ 
    150     --disable-bootstrap</userinput></screen> 
     139    --disable-libstdcxx-pch --disable-multilib</userinput></screen> 
    151140 
    152141    <variablelist> 
     
    203192      </varlistentry> 
    204193 
    205       <varlistentry> 
    206         <term><parameter>--disable-bootstrap</parameter></term> 
    207         <listitem> 
    208           <para>Bootstrapping the compiler is now the default for GCC. However, 
    209           our build method should provide us with a solid compiler without the 
    210           need to bootstrap each time.</para> 
    211         </listitem> 
    212       </varlistentry> 
    213  
    214194    </variablelist> 
    215195 
    216     <para>Compile the package:</para> 
     196    <para>The following command will compile GCC not once, but several times. It 
     197    uses the programs compiled in a first round to compile itself a second time, 
     198    and then again a third time. It then compares these second and third compiles 
     199    to make sure it can reproduce itself flawlessly. This is called 
     200    <quote>bootstrapping</quote>. Building GCC in this way ensures that it was 
     201    compiled correctly and is now the default configuration for the released 
     202    package. Continue with compiling by running:</para> 
    217203 
    218204<screen><userinput remap="make">make</userinput></screen> 
    219  
    220     <para>There is no need to use the <parameter>bootstrap</parameter> target 
    221     now because the compiler being used to compile this GCC was built from 
    222     the exact same version of the GCC sources used earlier.</para> 
    223205 
    224206    <para>Compilation is now complete. As previously mentioned, running the test 
  • branches/jh/BOOK/chapter06/gcc.xml

    r8392 r8404  
    4949<screen><userinput remap="pre">sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in</userinput></screen> 
    5050 
    51     <para>The bootstrap build performed in <xref linkend="ch-tools-gcc-pass1"/> 
     51    <para>For x86 machines, the bootstrap build performed in 
     52    <xref linkend="ch-tools-gcc-pass2"/> 
    5253    built GCC with the <option>-fomit-frame-pointer</option> compiler flag. 
    5354    Non-bootstrap builds omit this flag by default, so apply the following 
     
    5556    builds:</para> 
    5657 
    57 <screen><userinput remap="pre">sed -i 's/^XCFLAGS =$/&amp; -fomit-frame-pointer/' gcc/Makefile.in</userinput></screen> 
     58<screen><userinput remap="pre">case `uname -m` in 
     59  i?86) sed -i 's/^XCFLAGS =$/&amp; -fomit-frame-pointer/' \ 
     60        gcc/Makefile.in ;; 
     61esac</userinput></screen> 
    5862 
    5963    <para>The <command>fixincludes</command> script is known to occasionally 
  • branches/jh/BOOK/general.ent

    r8401 r8404  
    11<?xml version="1.0" encoding="ISO-8859-1"?> 
    2 <!ENTITY version "SVN-JH-20071005"> 
    3 <!ENTITY releasedate "October 5, 2007"> 
     2<!ENTITY version "SVN-JH-20071006"> 
     3<!ENTITY releasedate "October 6, 2007"> 
    44<!ENTITY milestone "7.0"> 
    55<!ENTITY generic-version "development"> <!-- Use "development", "testing", or "x.y[-pre{x}]" -->