diff options
author | Jeremy Utley <jeremy@linuxfromscratch.org> | 2003-08-31 21:45:06 +0000 |
---|---|---|
committer | Jeremy Utley <jeremy@linuxfromscratch.org> | 2003-08-31 21:45:06 +0000 |
commit | be2dd91303d31589ebc30f8fa780e96775ff8bce (patch) | |
tree | adaf2c96b268c8e12f68bef732403ea5f54e5471 | |
parent | 09c1e758b639de7a4f632a4e22c46c2863507714 (diff) |
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
-rw-r--r-- | chapter01/changelog.xml | 5 | ||||
-rw-r--r-- | chapter05/gcc-pass2-inst.xml | 11 | ||||
-rw-r--r-- | chapter05/lockingglibc.xml | 18 |
3 files changed, 23 insertions, 11 deletions
diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 48cd84910..7dc2104b5 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -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> diff --git a/chapter05/gcc-pass2-inst.xml b/chapter05/gcc-pass2-inst.xml index a3a58e0ee..f014658d7 100644 --- a/chapter05/gcc-pass2-inst.xml +++ b/chapter05/gcc-pass2-inst.xml @@ -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 diff --git a/chapter05/lockingglibc.xml b/chapter05/lockingglibc.xml index 18cc6d826..694e529b3 100644 --- a/chapter05/lockingglibc.xml +++ b/chapter05/lockingglibc.xml @@ -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><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>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>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> |