6.14. Installing GCC-3.2

Estimated build time:           13.26 SBU
Estimated required disk space:  221 MB

6.14.1. Installation of GCC

This package requires its patch to be applied before you can install it. Make sure it's unpacked before running the installation commands.

This package is known to behave badly when you have changed its default optimization flags (including the -march and -mcpu options). GCC is best left alone. 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. You have been warned.

Install GCC by running the following commands. These commands will build the C and C++ compiler. Other compilers are available within the gcc package. If you want to build all the other available compilers too, leave out the --enable-languages=c,c++ option in the configure command. See the GCC documentation for more details on which additional compilers are available.

Note: the build of other compilers is not tested by the people who actively work on LFS.

patch -Np1 -i ../gcc-3.2.patch &&
mkdir ../gcc-build &&
cd ../gcc-build &&
../gcc-3.2/configure --prefix=/usr --enable-shared \
    --enable-languages=c,c++ --enable-threads=posix \
    --with-slibdir=/lib --enable-__cxa_atexit \
    --enable-clocale=gnu &&
make bootstrap &&
make install &&
ln -s ../usr/bin/cpp /lib &&
ln -s ../bin/cpp /usr/lib &&
ln -s gcc /usr/bin/cc

6.14.2. Command explanations

--enable-threads=posix: This enables C++ exception handling for multithreaded code.

--enable-__cxa_atexit: This option will result in C++ shared libraries and C++ programs that are interoperable with other linux distributions.

--enable-clocale=gnu: There is a risk that some people will build ABI incompatible C++ libraries if they didn't install all of the glibc localedata. Using --enable-clocale=gnu ensures that the "right thing" is done in all cases. If you don't wish to use this option, then at least build the de_DE locale. When GCC finds this specific locale, then the correct locale mode (gnu) is implemented.

6.14.3. Contents of GCC

Last checked against version 3.1.

6.14.3.2. Descriptions

6.14.4. GCC Installation Dependencies

Last checked against version 2.95.3.

Bash: sh
Binutils: ar, as, ld, nm, ranlib
Diffutils: cmp
Fileutils: chmod, cp, ln, ls, mkdir, mv, rm, touch
Find: find
Gcc: cc, cc1, collect2, cpp0, gcc
Grep: egrep, grep
Make: make
Patch: patch
Sed: sed
Sh-utils: basename, dirname, echo, expr, hostname, sleep, true, uname
Tar: tar
Texinfo: install-info, makeinfo
Textutils: cat, tail, tr