User Tools

Site Tools


Sidebar


Здравствуйте!

Меня зовут Михаил!
Я системный администратор
и наполняю эту wiki,
решая разнообразные IT-задачки.

Моя специализация - виртуализация!

Я всегда готов помочь Вам
наладить IT-инфраструктуру
за скромное вознаграждение!

mike@autosys.tk
+7 (910) 911-96-23

linux_faq:build_gcc_5.3.0_from_source

Установка зависимостей, нужных для сборки

Устанавливаем запчасти:

sudo apt-get update && sudo apt-get install bzip2 cmake build-essential bison zlib1g-dev 

Для успешной компиляции нужно установить GMP, MPC и MPFR.

GMP

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 ..

MPFR

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

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

Процесс сборки и установки 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

Устанавливаем GCC

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)

Изменение 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).

Discussion

Enter your comment. Wiki syntax is allowed:
N X G J Y
 
linux_faq/build_gcc_5.3.0_from_source.txt · Last modified: 2016/04/12 14:26 by mike