10.23.1. Installation of GCC
The following patch contains a number of updates to the
4.6.0 branch by the GCC developers:
patch -Np1 -i ../gcc-4.6.0-branch_update-1.patch
Apply a sed substitution that will suppress the
installation of libiberty.a
. The
version of libiberty.a
provided by
Binutils will be used instead:
sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
The GCC documentation recommends building GCC outside of the source
directory in a dedicated build directory:
mkdir -v ../gcc-build
cd ../gcc-build
Prepare GCC for compilation:
CC="gcc -isystem /usr/include ${BUILD64}" \
CXX="g++ -isystem /usr/include ${BUILD64}" \
LDFLAGS="-Wl,-rpath-link,/usr/lib64:/lib64:/usr/lib:/lib" \
../gcc-4.6.0/configure --prefix=/usr --libdir=/usr/lib64 \
--libexecdir=/usr/lib64 --enable-shared --enable-threads=posix \
--enable-__cxa_atexit --enable-c99 --enable-long-long \
--enable-clocale=gnu --enable-languages=c,c++ --disable-libstdcxx-pch
Compile the package:
make
![[Important]](../images/important.png)
Important
The test suite for GCC is considered
critical. Do not skip it under any circumstance.
Test the results, but do not stop at errors:
make -k check
The -k
flag is used to make the test suite
run 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 receive a summary of the test suite results, run:
../gcc-4.6.0/contrib/test_summary
For only the summaries, pipe the output through
grep -A7 Summ
.
A few unexpected failures cannot always be avoided. The
GCC developers are usually aware of these issues, but have not
resolved them yet.
Install the package:
make install
Some packages expect the C preprocessor to be installed in the
/lib
directory.
To support those packages, create this symlink:
ln -sv ../usr/bin/cpp /lib
Many packages use the name cc to call the C
compiler. To satisfy those packages, create a symlink:
ln -sv gcc /usr/bin/cc