diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 2d23dcd81..cc9bec80d 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -6,6 +6,10 @@ +August 29, 2003 [jeremy] - Updated GCC +to version 3.3.1, including fixes based on Zack's mini-hint +for GCC 3.3, and patches from his docs. + August 28, 2003 [matt] - Updated packages to linux-2.4.22, man-pages-1.60, expect-5.39.0, findutils-4.1.20 and tcl-8.4.4 diff --git a/chapter04/chapter04.xml b/chapter04/chapter04.xml index f610e4ecf..c7206d777 100644 --- a/chapter04/chapter04.xml +++ b/chapter04/chapter04.xml @@ -245,11 +245,9 @@ GCC Patch (&gcc-2953-patch-version;) - &gcc-2953-patch-size;: GCC Specs Patch: - -GCC MMap Test Patch: - + GCC No Fixincludes Patch: - + Kbd Patch (&kbd-patch-version;) - &kbd-patch-size;: diff --git a/chapter05/gcc-pass1-inst.xml b/chapter05/gcc-pass1-inst.xml index d7f98aa0a..737cfba96 100644 --- a/chapter05/gcc-pass1-inst.xml +++ b/chapter05/gcc-pass1-inst.xml @@ -12,9 +12,6 @@ Therefore, if you have defined any environment variables that override default optimizations, such as CFLAGS and CXXFLAGS, we recommend unsetting or modifying them when building GCC. -patch -Np1 -i ../gcc-&gcc-version;-mmap_test.patch -patch -Np1 -i ../gcc-&gcc-version;-no_fixincludes.patch - It is recommended by the GCC installation documentation to build GCC outside of the source directory in a dedicated directory: diff --git a/chapter05/gcc-pass2-inst.xml b/chapter05/gcc-pass2-inst.xml index ce88c062a..3a090fb06 100644 --- a/chapter05/gcc-pass2-inst.xml +++ b/chapter05/gcc-pass2-inst.xml @@ -7,10 +7,9 @@ They will all unfold into a single gcc-&gcc-version;/ subdir. -First correct two problems and make an essential adjustment: +First correct one problem and make an essential adjustment: -patch -Np1 -i ../gcc-&gcc-version;-mmap_test.patch -patch -Np1 -i ../gcc-&gcc-version;-no_fixincludes.patch +patch -Np1 -i ../gcc-&gcc-version;-no_fixincludes.patch patch -Np1 -i ../gcc-&gcc-specs-version;.patch The last patch changes GCC's default location of the dynamic linker, diff --git a/chapter05/lockingglibc.xml b/chapter05/lockingglibc.xml index 3c21e8c97..18cc6d826 100644 --- a/chapter05/lockingglibc.xml +++ b/chapter05/lockingglibc.xml @@ -35,6 +35,18 @@ unset SPECFILE 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". +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. + +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 + This completes the installation of the self-contained toolchain, which can now be used to build the rest of the temporary tools. diff --git a/chapter06/gcc-inst.xml b/chapter06/gcc-inst.xml index 4cd23a986..0908c05a7 100644 --- a/chapter06/gcc-inst.xml +++ b/chapter06/gcc-inst.xml @@ -11,12 +11,13 @@ or modifying them when building GCC. This time we will build both the C and the C++ compiler, so you'll have to unpack the GCC-core and the GCC-g++ tarball -- they -will unfold into the same directory. The full GCC package contains even more +will unfold into the same directory. You should likewise extract the +GCC-testsuite package. The full GCC package contains even more compilers. Instructions for building these can be found at . patch -Np1 -i ../gcc-&gcc-version;-no_fixincludes.patch -patch -Np1 -i ../gcc-&gcc-version;-mmap_test.patch + GCC's installation documentation recommends to build the package in a dedicated directory separate from the source tree. Create this build diff --git a/entities/gcc.ent b/entities/gcc.ent index 2678ac9ed..82a0607f8 100644 --- a/entities/gcc.ent +++ b/entities/gcc.ent @@ -16,8 +16,8 @@ - - + +