Simplified the glibc-lockin for chapter 5, and added some verbiage on fixincludes

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@2708 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
This commit is contained in:
Jeremy Utley 2003-08-31 21:45:06 +00:00
parent 09c1e758b6
commit be2dd91303
3 changed files with 22 additions and 10 deletions

View File

@ -82,6 +82,11 @@
</itemizedlist>
</para></listitem>
<listitem><para>August 31, 2003 [jeremy] - Added in Greg's new
instructions for GCC 3.3.1 wrt the fixincludes process. Also added
extra verbiage to the lockin and GCC pass 2 pages on the fixincludes
process.</para></listitem>
<listitem><para>August 31, 2003 [jeremy] - Added user nobody to
passwd and group files, so coreutils tests will pass.</para></listitem>

View File

@ -12,6 +12,17 @@ subdir.</para>
<para><screen><userinput>patch -Np1 -i ../gcc-&gcc-version;-no_fixincludes-2.patch
patch -Np1 -i ../gcc-&gcc-specs-version;.patch</userinput></screen></para>
<para>The first patch disables the GCC "fixincludes" script. We mentioned this
briefly earlier, but a slightly more in-depth explanation of the fixincludes
process is warranted here. Under normal circumstances, the GCC fixincludes
script scans your system for header files that need to be fixed. It might find
that the Glibc header files on your host system need to be fixed, fix them and
put them in the GCC private include directory. Then, later on in Chapter 6,
after we've installed the newer Glibc, this private include directory would be
searched before the system include directory, resulting in GCC finding the
fixed headers from the host system, which would most likely not match the Glibc
version actually used for the LFS system.</para>
<para>The last patch changes GCC's default location of the dynamic linker,
a simple substitution of "/lib/ld-linux.so.2" with "/stage1/lib/ld-linux.so.2"
in <filename>config/i386/linux.h</filename>. Patching now rather than adjusting

View File

@ -35,17 +35,13 @@ unset SPECFILE</userinput></screen></para>
it all in. Or you can edit the specs file by hand if you want to: just replace
"/lib/ld-linux.so.2" with "/stage1/lib/ld-linux.so.2".</para>
<para>Also, because we allowed GCC's "Fixincludes" script to modify our host's
header files (and this was necessary because of improper use of the __thread
keyword in some older software), we want to get rid of those modified header
files, and replace them with pristine ones.</para>
<para>Lastly, there is a possibility that some include files from the host
system have found their way into gcc's private include dir. This can happen
because of GCC's "fixincludes" process which part of the GCC build. We'll
explain more about this further on in this chapter. For now, run the
following commands to eliminate this possibility.</para>
<para><screen><userinput>GCCDIR=/stage1/lib/gcc-lib/*/*
rm -rf $GCCDIR/include/*
cp $GCCDIR/install-tools/include/* $GCCDIR/include
cp $GCCDIR/install-tools/gsyslimits.h \
$GCCDIR/include/syslimits.h
unset GCCDIR</userinput></screen></para>
<para><screen><userinput>rm -f /stage1/lib/gcc-lib/*/*/include/{pthread.h,bits/sigthread.h}</userinput></screen></para>
<para>This completes the installation of the self-contained toolchain, which
can now be used to build the rest of the temporary tools.</para>