Author: matthew
Date: 2005-10-04 13:56:35 -0600 (Tue, 04 Oct 2005)
New Revision: 6959
Modified:
trunk/BOOK/chapter01/changelog.xml
trunk/BOOK/chapter05/adjusting.xml
trunk/BOOK/chapter05/gcc-pass2.xml
trunk/BOOK/chapter06/gcc.xml
trunk/BOOK/general.ent
Log:
Prevent GCC's fixincludes from running during chapter 5 pass2 and chapter 6
Modified: trunk/BOOK/chapter01/changelog.xml
===================================================================
--- trunk/BOOK/chapter01/changelog.xml 2005-10-04 19:37:37 UTC (rev 6958)
+++ trunk/BOOK/chapter01/changelog.xml 2005-10-04 19:56:35 UTC (rev 6959)
@@ -122,6 +122,11 @@
</itemizedlist>
</listitem>
+<listitem><para>October 4, 2005 [matt]: Prevent GCC from running the
+<command>fixincludes</command> script in chapter5 pass2 and chapter 6 (fixes
bug
+1636). Thanks to Tushar and Greg for their contributions on this issue.</para>
+</listitem>
+
<listitem><para>September 29, 2005 [matt]: Add more explicit reader
prerequisites (fixes bug 1629).</para></listitem>
Modified: trunk/BOOK/chapter05/adjusting.xml
===================================================================
--- trunk/BOOK/chapter05/adjusting.xml 2005-10-04 19:37:37 UTC (rev 6958)
+++ trunk/BOOK/chapter05/adjusting.xml 2005-10-04 19:56:35 UTC (rev 6959)
@@ -61,10 +61,18 @@
linkend="ch-tools-toolchaintechnotes" role=","/> if
necessary.</para></important>
-<para>There is a possibility that some header files from the host system have
-found their way into GCC's private include dir. This can happen as a result of
-GCC's <quote>fixincludes</quote> process, which runs as part of the GCC build.
-This is explained in more detail later in this chapter. Run the following
commands to remove those header files (you may find it easier to copy and paste
these commands, rather than typing them by hand, due to their length):</para>
+<para>During the build process, GCC runs a script
+(<command>fixincludes</command>) that scans the system for header files that
may
+need to be fixed (they might contain syntax errors, for example), and installs
+the fixed versions in a private include directory. There is a possibility
that,
+as a result of this process, some header files from the host system have found
+their way into GCC's private include dir. As the rest of this chapter only
+requires the headers from GCC and Glibc, which have both been installed at this
+point, any "fixed" headers can safely be removed. This helps to
avoid
+any host headers polluting the build environment. Run the following commands
to
+remove the header files in GCC's private include directory (you may find it
+easier to copy and paste these commands, rather than typing them by hand, due
to
+their length):</para>
<!-- && used to ease copy and pasting -->
<screen><userinput>GCC_INCLUDEDIR=`dirname $(gcc
-print-libgcc-file-name)`/include &&
Modified: trunk/BOOK/chapter05/gcc-pass2.xml
===================================================================
--- trunk/BOOK/chapter05/gcc-pass2.xml 2005-10-04 19:37:37 UTC (rev 6958)
+++ trunk/BOOK/chapter05/gcc-pass2.xml 2005-10-04 19:56:35 UTC (rev 6959)
@@ -58,24 +58,19 @@
url="&lfs-root;/lfs/faq.html#no-ptys"/> for more information on how to get PTYs
working.</para>
-<para>Under normal circumstances, the GCC <command>fixincludes</command> script
-scans the system for header files that need to be fixed (they may contain
syntax
-errors, for example). The script might find that some Glibc header files on
the
-host system need to be fixed, so fixes them and puts them in the GCC private
-include directory. In <xref linkend="chapter-building-system"/>, after the
-newer Glibc has been installed, this private include directory will be searched
-before the system include directory. This may result in GCC finding the fixed
-headers from the host system, which most likely will not match the Glibc
version
-used for the LFS system.</para>
+<para>As previously explained in <xref linkend="ch-tools-adjusting"/>, under
+normal circumstances the GCC <command>fixincludes</command> script is run in
+order to fix potentially broken header files. As GCC-&gcc-version; and
+Glibc-&glibc-version; have already been installed at this point, and their
+respective header files are known not to require fixing, the
+<command>fixincludes</command> script is not required. As mentioned
previously,
+the script may in fact pollute the build environment by installing fixed
headers
+from the host system into GCC's private include directory. The running of the
+<command>fixincludes</command> script can be suppressed by issuing the
following
+commands:</para>
-<para>The following command adjusts where the GCC
<command>fixincludes</command>
-script searches for headers, so that it fixes only the new headers under
-<filename class="directory">/tools</filename>, not the ones from your host
-system.</para>
-
<screen><userinput>cp -v gcc/Makefile.in{,.orig} &&
-sed '[EMAIL PROTECTED](^NATIVE_SYSTEM_HEADER_DIR =\)[EMAIL PROTECTED]
/tools/[EMAIL PROTECTED]' \
- gcc/Makefile.in.orig > gcc/Makefile.in</userinput></screen>
+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.
Modified: trunk/BOOK/chapter06/gcc.xml
===================================================================
--- trunk/BOOK/chapter06/gcc.xml 2005-10-04 19:37:37 UTC (rev 6958)
+++ trunk/BOOK/chapter06/gcc.xml 2005-10-04 19:56:35 UTC (rev 6959)
@@ -53,6 +53,14 @@
<screen><userinput>sed -i 's/^XCFLAGS =$/& -fomit-frame-pointer/'
gcc/Makefile.in</userinput></screen>
+<para>The <command>fixincludes</command> script is known to occasionally
+erroneously attempt to "fix" the system headers installed so far. As
+the headers installed by GCC-&gcc-version; and Glibc-&glibc-version; are known
+to not require fixing, issue the following command to prevent the
+<command>fixincludes</command> script from running:</para>
+
+<screen><userinput>sed -i '[EMAIL PROTECTED]/[EMAIL PROTECTED] true@'
gcc/Makefile.in</userinput></screen>
+
<para>The GCC documentation recommends building GCC outside of the source
directory in a dedicated build directory:</para>
Modified: trunk/BOOK/general.ent
===================================================================
--- trunk/BOOK/general.ent 2005-10-04 19:37:37 UTC (rev 6958)
+++ trunk/BOOK/general.ent 2005-10-04 19:56:35 UTC (rev 6959)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!ENTITY version "SVN-20051001">
-<!ENTITY releasedate "October 1, 2005">
+<!ENTITY version "SVN-20051004">
+<!ENTITY releasedate "October 4, 2005">
<!ENTITY milestone "6.2">
<!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