diff options
Diffstat (limited to 'chapter05/gcc-exp.xml')
-rw-r--r-- | chapter05/gcc-exp.xml | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/chapter05/gcc-exp.xml b/chapter05/gcc-exp.xml index 736eac8b5..abbf45cae 100644 --- a/chapter05/gcc-exp.xml +++ b/chapter05/gcc-exp.xml @@ -1,32 +1,35 @@ <sect2> <title>Command explanations</title> -<para><userinput>patch -Np1 -i ../gcc-3.2-nofixincludes-2.patch:</userinput> -This prevents the fixincludes script from running. This is needed because -under normal circumstances the GCC installation will run the fixincludes -scripts which scans your system for header files that need to be fixed. Say -it finds Glibc header files. It will fix them and will end up in -$LFS/static/lib/gcc-lib/i686-pc-linux-gnu/3.2. Later on in chapter 6 you -will install Glibc which will install header files in /usr/include. Next -you will install other programs which will use Glibc headers. GCC will look -in /static/lib/gcc-lib before looking in /usr/include, whichhas the result -of Glibc header files from your host distribution being found and used which -are probably incompatible with the Glibc version actually in use on the LFS -system.</para> - <para><userinput>--prefix=/static:</userinput> This is NOT a typo. GCC hard codes some paths while compiling and so we need to pass /static as the prefix during ./configure. We pass the real install prefix during the make install command later.</para> -<para><userinput>echo "#define HAVE_GAS_HIDDEN 1":</userinput> -This defines the .hidden assembler directive so that we don't build -a faulty Glibc later on.</para> +<para><userinput>--with-as and --with-ld:</userinput> GCC can be +miscompiled if your host distribution's Binutils package is quite old. We +need a good working static GCC until we reinstall GCC later in chapter 6. +So by using <filename>as</filename> and <filename>ld</filename> from the +Binutils package we just compiled we ensure that GCC will work +correctly.</para> <para><userinput>make BOOT_LDFLAGS="-static":</userinput> This is the equivalent to make LDFLAGS="-static" as we use with other packages to compile them statically.</para> +<para><userinput>make install-no-fixedincludes:</userinput> +This prevents the fixed header files from being installed. This is needed +because under normal circumstances the GCC installation will run the +fixincludes scripts which scans your system for header files that need to be +fixed. Say it finds Glibc header files. It will fix them and will end up in +$LFS/static/lib/gcc-lib/i686-pc-linux-gnu/ Later on in chapter 6 you +will install Glibc which will install header files in /usr/include. Next +you will install other programs which will use Glibc headers. GCC will look +in /static/lib/gcc-lib before looking in /usr/include, which has the result +of Glibc header files from your host distribution being found and used which +are probably incompatible with the Glibc version actually in use on the LFS +system.</para> + <para><userinput>ln -s gcc $LFS/static/bin/cc:</userinput> This creates the $LFS/static/bin/gcc symlink, which some packages need.</para> |