- Timestamp:
- 08/30/2007 05:34:55 PM (17 years ago)
- Children:
- f65c459
- Parents:
- 0d2c43f
- Location:
- chapter05
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter05/binutils-pass1.xml
r0d2c43f rb8dd57d6 58 58 </note> 59 59 60 <para>If our host is a multilib machine, we want to ensure that we 61 build 64-bit binaries, so we'll test for that and set a variable if so:</para> 62 63 <screen><userinput>test $(uname -m | grep 64) && M64="-m64"</userinput></screen> 64 60 65 <para>Now prepare Binutils for compilation:</para> 61 66 62 <screen><userinput>CC="gcc -B/usr/bin/" ../binutils-&binutils-version;/configure \ 63 --prefix=/tools --disable-nls --disable-werror</userinput></screen> 67 <screen><userinput>CC="gcc -B/usr/bin/ $M64" ../binutils-&binutils-version;/configure \ 68 --prefix=/tools --disable-nls --disable-werror 69 unset M64</userinput></screen> 64 70 65 71 <variablelist> … … 114 120 first pass will soon be replaced by those from the second.</para> 115 121 122 <para>Create a symlink to ensure the sanity of our toolchain:</para> 123 124 <screen><userinput>mkdir -v /tools/lib 125 ln -sv lib /tools/lib64</userinput></screen> 126 116 127 <para>Install the package:</para> 117 128 118 129 <screen><userinput>make install</userinput></screen> 119 130 120 <para> Next, prepare the linker for the <quote>Adjusting</quote> phase131 <para>Finally, prepare the linker for the <quote>Adjusting</quote> phase 121 132 later on:</para> 122 133 … … 124 135 make -C ld LIB_PATH=/tools/lib 125 136 cp -v ld/ld-new /tools/bin</userinput></screen> 126 127 <para>Finally, create a symlink to ensure the sanity of our toolchain:</para>128 129 <screen><userinput>ln -nsv lib /tools/lib64</userinput></screen>130 137 131 138 <variablelist> -
chapter05/gcc-pass1.xml
r0d2c43f rb8dd57d6 44 44 cd ../gcc-build</userinput></screen> 45 45 46 <para>If our host is a multilib machine, we want to ensure that we 47 build 64-bit binaries, so we'll test for that and set a variable if so. 48 Also, the --with-arch flag is only necessary for x86 machines.</para> 49 50 <screen><userinput>case $(uname -m) in 51 x86) WITHARCH="--with-arch=i486" ;; 52 x86_64) M64="-m64" ;; 53 esac</userinput></screen> 54 46 55 <para>Prepare GCC for compilation:</para> 47 56 48 <screen><userinput>CC="gcc -B/usr/bin/ " ../gcc-&gcc-version;/configure --prefix=/tools \57 <screen><userinput>CC="gcc -B/usr/bin/ $M64" ../gcc-&gcc-version;/configure --prefix=/tools \ 49 58 --with-local-prefix=/tools --disable-nls --disable-shared \ 50 --enable-languages=c --disable-multilib --with-arch=i486</userinput></screen> 59 --enable-languages=c --disable-multilib \ 60 $WITHARCH 61 unset M64 WITHARCH</userinput></screen> 51 62 52 63 <variablelist> … … 110 121 <para>Continue with compiling the package:</para> 111 122 112 <screen><userinput>make bootstrap</userinput></screen> 113 114 <variablelist> 115 <title>The meaning of the make parameter:</title> 116 117 <varlistentry> 118 <term><parameter>bootstrap</parameter></term> 119 <listitem> 120 <para>This target does not just compile GCC, but compiles it 121 several times. It uses the programs compiled in a first round 122 to compile itself a second time, and then again a third time. 123 It then compares these second and third compiles to make sure 124 it can reproduce itself flawlessly. This also implies that it 125 was compiled correctly.</para> 126 </listitem> 127 </varlistentry> 128 129 </variablelist> 123 <screen><userinput>make</userinput></screen> 130 124 131 125 <para>Compilation is now complete. At this point, the test suite would -
chapter05/gcc-pass2.xml
r0d2c43f rb8dd57d6 135 135 variables that override the default optimization flags.</para> 136 136 137 <para>The --with-arch flag is only necessary for x86 machines.</para> 138 139 <screen><userinput>case $(uname -m) in 140 x86) WITHARCH="--with-arch=i486" ;; 141 esac</userinput></screen> 142 137 143 <para>Now prepare GCC for compilation:</para> 138 144 … … 142 148 --enable-__cxa_atexit --enable-languages=c,c++ \ 143 149 --disable-libstdcxx-pch --disable-multilib \ 144 --with-arch=i486</userinput></screen> 150 $WITHARCH 151 unset WITHARCH</userinput></screen> 145 152 146 153 <variablelist>
Note:
See TracChangeset
for help on using the changeset viewer.