Устанавливаем запчасти:
sudo apt-get update && sudo apt-get install bzip2 cmake build-essential bison zlib1g-dev
Для успешной компиляции нужно установить GMP, MPC и MPFR.
wget http://ftp.gnu.org/gnu/gmp/gmp-6.1.0.tar.bz2
Распаковываем и ставим GMP:
bunzip2 ./gmp-6.1.0.tar.bz2 tar -xvf ./gmp-6.1.0.tar cd ./gmp-6.1.0/ ./configure make make check sudo make install cd ..
wget http://ftp.gnu.org/gnu/mpfr/mpfr-3.1.3.tar.bz2
Распаковываем и ставим mpfr:
bunzip2 ./mpfr-3.1.3.tar.bz2 tar -xvf ./mpfr-3.1.3.tar cd mpfr-3.1.3/ curl http://www.mpfr.org/mpfr-3.1.3/allpatches | patch -N -Z -p1 ./configure make make check sudo make install cd ..
MPC нельзя установить без MPFR
wget http://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
Распаковываем собираем и ставим mpc:
tar -xvf ./mpc-1.0.3.tar.gz cd ./mpc-1.0.3/ ./configure make make check sudo make install cd ..
Процесс сборки и установки GCC 5.3 хорошо описан тут: http://www.linuxfromscratch.org/blfs/view/cvs/general/gcc.html Скачиваем архив с GCC и распаковываем:
wget http://ftpmirror.gnu.org/gcc/gcc-5.3.0/gcc-5.3.0.tar.bz2 bzip2 -d ./gcc-5.3.0.tar.bz2 tar -xvf ./gcc-5.3.0.tar
Создаем директорию, в которой будет проходить сборка и конфигурируем GCC:
mkdir ./gcc-build cd gcc-build/ ../gcc-5.3.0/configure --prefix=/usr --disable-multilib --with-system-zlib --enable-languages=c,c++,fortran,go,objc,obj-c++
Собираем:
make
sudo make install sudo mkdir -pv /usr/share/gdb/auto-load/usr/lib sudo mv -v /usr/lib64/*gdb.py /usr/share/gdb/auto-load/usr/lib sudo chown -v -R root:root /usr/lib/gcc/*linux-gnu/5.3.0/include{,-fixed} sudo ln -v -sf ../usr/bin/cpp /lib sudo ln -v -sf gcc /usr/bin/cc sudo install -v -dm755 /usr/lib/bfd-plugins sudo ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/5.3.0/liblto_plugin.so /usr/lib/bfd-plugins/
Проверяем что получилось:
gcc -v
Вывод должен быть примерно такой:
Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-unknown-linux-gnu/5.3.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: ../gcc-5.3.0/configure --prefix=/usr --disable-multilib --with-system-zlib --enable-languages=c,c++,fortran,go,objc,obj-c++ Thread model: posix gcc version 5.3.0 (GCC)
если установлено несколько компиляторов, то переключаться между ними можно с помощью стандатрного механизма, обслуживающего символические ссылки - update-alternatives.
Чтобы посмотреть текущую ссылку gcc:
update-alternatives --query gcc
Чтобы изменить текущую ссылку на gcc:
sudo update-alternatives --auto gcc sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/x86_64-unknown-linux-gnu-gcc-5.3.0 60
В последней команде после - -install указываем последовательно путь к символической ссылке (/usr/bin/gcc), имя (gcc), путь к исполняемому файлу (/usr/bin/x86_64-unknown-linux-gnu-gcc-5.3.0) и приоритет (60).