From 673b0d84ba9591e07c0bdf0ee49d92eba10f502c Mon Sep 17 00:00:00 2001 From: Matthew Burgess Date: Mon, 3 May 2004 10:59:46 +0000 Subject: * Merged newxml into HEAD git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@3435 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689 --- chapter05/gcc-pass2.xml | 76 ++++++++++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 35 deletions(-) (limited to 'chapter05/gcc-pass2.xml') diff --git a/chapter05/gcc-pass2.xml b/chapter05/gcc-pass2.xml index da119311c..d89d82e82 100644 --- a/chapter05/gcc-pass2.xml +++ b/chapter05/gcc-pass2.xml @@ -1,14 +1,19 @@ + + + %general-entities; +]> -Installing GCC-&gcc-version; - Pass 2 - +GCC-&gcc-version; - Pass 2 + -&buildtime; &gcc-time-tools-pass2; -&diskspace; &gcc-compsize-tools-pass2; + +GCC +tools, pass 2 -&aa-gcc-down; -&aa-gcc-dep; +&buildtime; 11.0 SBU +&diskspace; 274 MB -   Re-installation of GCC @@ -37,24 +42,24 @@ working. This time we will build both the C and the C++ compilers, so you'll have to unpack both the core and the g++ tarballs (and testsuite too, if you want to run the tests). Unpacking them in your working directory, they will all unfold -into a single &gcc-dir;/ subdirectory. +into a single gcc-&gcc-version;/ subdirectory. First correct a problem and make an essential adjustment: -patch -Np1 -i ../&gcc-nofixincludes-patch; -patch -Np1 -i ../&gcc-specs-patch; - -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 some 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 -, 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. +patch -Np1 -i ../gcc-&gcc-version;-no_fixincludes-1.patch +patch -Np1 -i ../gcc-&gcc-version;-specs-1.patch + +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 some 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 +, 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. The second patch changes GCC's default location of the dynamic linker (typically ld-linux.so.2). It also removes @@ -77,11 +82,11 @@ variables that override the default optimization flags. Now prepare GCC for compilation: -../&gcc-dir;/configure --prefix=/tools \ -    --with-local-prefix=/tools \ -    --enable-clocale=gnu --enable-shared \ -    --enable-threads=posix --enable-__cxa_atexit \ -    --enable-languages=c,c++ +../gcc-&gcc-version;/configure --prefix=/tools \ + --with-local-prefix=/tools \ + --enable-clocale=gnu --enable-shared \ + --enable-threads=posix --enable-__cxa_atexit \ + --enable-languages=c,c++ The meaning of the new configure options: @@ -128,7 +133,7 @@ through to completion and not stop at the first failure. The GCC test suite is very comprehensive and is almost guaranteed to generate a few failures. To get a summary of the test suite results, run this: -../&gcc-dir;/contrib/test_summary +../gcc-&gcc-version;/contrib/test_summary (For just the summaries, pipe the output through grep -A7 Summ.) @@ -146,8 +151,8 @@ current GCC-&gcc-version; should look on i686-pc-linux-gnu, see The unexpected pass for g++ is due to the use of --enable-__cxa_atexit. Apparently not all platforms -supported by GCC have support for "__cxa_atexit" in their C libraries, so this -test is not always expected to pass. +supported by GCC have support for __cxa_atexit in their C +libraries, so this test is not always expected to pass. The 24 unexpected passes for libstdc++ are due to the use of --enable-clocale=gnu. This option, which is the correct @@ -160,8 +165,10 @@ tests are not always expected to pass. Having a few unexpected failures often cannot be avoided. The GCC developers are usually aware of these, but haven't yet gotten around to fixing -them. In short, unless your results are vastly different from those at the -above URL, it is safe to continue. +them. One particular case in point is the filebuf_members test in the C++ +standard library testsuite. This test has been observed to fail in some +situations, but succeeed in others. In short, unless your results are vastly +different from those at the above URL, it is safe to continue. And finally install the package: @@ -175,9 +182,8 @@ GCC Specs patch. -   + The details on this package are found in . -  + - -- cgit v1.2.3-54-g00ecf