瀏覽代碼

Experimental change - Added -B/usr/bin to compiler flags for GCC Pass 1 - should result in a fix for the problem we encountered with LFS 5.1.1 building an older toolchain from a newer.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@4058 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
Jeremy Utley 21 年之前
父節點
當前提交
b3c46bf730
共有 2 個文件被更改,包括 19 次插入3 次删除
  1. 5 0
      chapter01/changelog.xml
  2. 14 3
      chapter05/gcc-pass1.xml

+ 5 - 0
chapter01/changelog.xml

@@ -89,6 +89,11 @@ first a summary, then a detailed log.</para>
 </itemizedlist>
 </listitem>
 
+<listitem><para>August 27, 2004 [jeremy]: (Experimental) Added -B/usr/bin flag
+to GCC Pass 1 to solve possible problem where the host's toolchain is
+actually newer than the one we're building.  Change taken from Greg Schafer's
+DIY-Linux project</para></listitem>
+
 <listitem><para>August 27, 2004 [jeremy]: Added the readline display wrap
 patch to chapter 6.</para></listitem>
 

+ 14 - 3
chapter05/gcc-pass1.xml

@@ -44,13 +44,24 @@ cd ../gcc-build</userinput></screen>
 
 <para>Prepare GCC for compilation:</para>
 
-<screen><userinput>../gcc-&gcc-version;/configure --prefix=/tools \
-    --libexecdir=/tools/lib --with-local-prefix=/tools \
-    --disable-nls --enable-shared --enable-languages=c</userinput></screen>
+<screen><userinput>CC="gcc -B/usr/bin" ../gcc-&gcc-version;/configure
+    --prefix=/tools --libexecdir=/tools/lib
+    --with-local-prefix=/tools --disable-nls
+    --enable-shared --enable-languages=c</userinput></screen>
 
 <para>The meaning of the configure options:</para>
 
 <variablelist>
+<varlistentry>
+<term><parameter>CC="gcc -B/usr/bin"</parameter></term>
+<listitem><para>This parameter fixes a possible problem with building GCC
+at this stage, first noticed in LFS 5.1.1.  If our host uses a new version
+of Binutils than we compiled, the host compiler may try use features not
+supported by our new linker, causing compilation errors.  By passing the -B
+flag to gcc, we cause the compiler to temporarily use the host's linker,
+which solves the problem.</para></listitem>
+</varlistentry>
+
 <varlistentry>
 <term><parameter>--with-local-prefix=/tools</parameter></term>
 <listitem><para>The purpose of this switch is to remove <filename class="directory">/usr/local/include</filename>