LINUX.ORG.RU

История изменений

Исправление ZenitharChampion, (текущая версия) :

Вот инструкция для тех, кто хочет скомпилировать новый GCC в старом дистрибутиве.

Лёгкий уровень: Ubuntu 16.04 (ядро 4.4)
Средний уровень: Debian 6 (ядро 2.6.32)
Сложный уровень: CentOS 4 (ядро 2.6.9)

Компилировать будем в /home/username/gcc-8. make install выполняем без sudo, потому что устанавливаем в директорию пользователя. Количество потоков сборки -jN для Intel CPU равно кол-ву реальных ядер (например -j4), для AMD FX - кол-ву ядер минус одно, например -j7.

Компилируем GMP

mkdir /home/username/builddir
cd /home/username/builddir
wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.bz2
tar xf gmp-6.1.2.tar.bz2
cd gmp-6.1.2
CPPFLAGS=-fexceptions ./configure --enable-cxx --prefix=/home/username/gcc-8
make -j4
make install

Компилируем MPFR

cd /home/username/builddir
wget https://www.mpfr.org/mpfr-current/mpfr-4.0.1.tar.bz2
tar xf mpfr-4.0.1.tar.bz2
cd mpfr-4.0.1
./configure --prefix=/home/username/gcc-8 --with-gmp=/home/username/gcc-8
make -j4
make install

Компилируем MPC

cd /home/username/builddir
wget https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
tar xf mpc-1.1.0.tar.gz
cd mpc-1.1.0
./configure --prefix=/home/username/gcc-8 --with-gmp=/home/username/gcc-8 --with-mpfr=/home/username/gcc-8
make -j4
make install

Компилируем ISL

cd /home/username/builddir
wget http://isl.gforge.inria.fr/isl-0.20.tar.bz2
tar xf isl-0.20.tar.bz2
cd isl-0.20
./configure --prefix=/home/username/gcc-8 --with-gmp=/home/username/gcc-8 --with-mpfr=/home/username/gcc-8 --with-mpc=/home/username/gcc-8
make -j4
make install

Компилируем GCC

cd /home/username/builddir
wget http://mirror.linux-ia64.org/gnu/gcc/releases/gcc-8.2.0/gcc-8.2.0.tar.gz
tar xf gcc-8.2.0.tar.gz
cd gcc-8.2.0
mkdir objdir
cd objdir
export LD_LIBRARY_PATH=/home/username/gcc-8/lib:$LD_LIBRARY_PATH
../configure --prefix=/home/username/gcc-8 --enable-languages=c,c++ --with-gmp=/home/username/gcc-8 --with-mpfr=/home/username/gcc-8 --with-mpc=/home/username/gcc-8 --with-isl=/home/username/gcc-8
make -j4
make install

Использовать так:

export CC=/home/username/gcc-8/bin/gcc
export CXX=/home/username/gcc-8/bin/g++

При распространении бинарника, скомпилированного этим компилятором, может понадобиться положить в архив с программой - libgcc.so.1 и libstdc++.so.6 из нового компилятора.

Исправление ZenitharChampion, :

Вот небольшая инструкция для тех, кто хочет скомпилировать новый GCC в старом дистрибутиве.

Лёгкий уровень: Ubuntu 16.04 (ядро 4.4)
Средний уровень: Debian 6 (ядро 2.6.32)
Сложный уровень: CentOS 4 (ядро 2.6.9)

Компилировать будем в /home/username/gcc-8. make install выполняем без sudo, потому что устанавливаем в директорию пользователя. Количество потоков сборки -jN для Intel CPU равно кол-ву реальных ядер (например -j4), для AMD FX - кол-ву ядер минус одно, например -j7.

Компилируем GMP

mkdir /home/username/builddir
cd /home/username/builddir
wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.bz2
tar xf gmp-6.1.2.tar.bz2
cd gmp-6.1.2
CPPFLAGS=-fexceptions ./configure --enable-cxx --prefix=/home/username/gcc-8
make -j4
make install

Компилируем MPFR

cd /home/username/builddir
wget https://www.mpfr.org/mpfr-current/mpfr-4.0.1.tar.bz2
tar xf mpfr-4.0.1.tar.bz2
cd mpfr-4.0.1
./configure --prefix=/home/username/gcc-8 --with-gmp=/home/username/gcc-8
make -j4
make install

Компилируем MPC

cd /home/username/builddir
wget https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
tar xf mpc-1.1.0.tar.gz
cd mpc-1.1.0
./configure --prefix=/home/username/gcc-8 --with-gmp=/home/username/gcc-8 --with-mpfr=/home/username/gcc-8
make -j4
make install

Компилируем ISL

cd /home/username/builddir
wget http://isl.gforge.inria.fr/isl-0.20.tar.bz2
tar xf isl-0.20.tar.bz2
cd isl-0.20
./configure --prefix=/home/username/gcc-8 --with-gmp=/home/username/gcc-8 --with-mpfr=/home/username/gcc-8 --with-mpc=/home/username/gcc-8
make -j4
make install

Компилируем GCC

cd /home/username/builddir
wget http://mirror.linux-ia64.org/gnu/gcc/releases/gcc-8.2.0/gcc-8.2.0.tar.gz
tar xf gcc-8.2.0.tar.gz
cd gcc-8.2.0
mkdir objdir
cd objdir
export LD_LIBRARY_PATH=/home/username/gcc-8/lib:$LD_LIBRARY_PATH
../configure --prefix=/home/username/gcc-8 --enable-languages=c,c++ --with-gmp=/home/username/gcc-8 --with-mpfr=/home/username/gcc-8 --with-mpc=/home/username/gcc-8 --with-isl=/home/username/gcc-8
make -j4
make install

Использовать так:

export CC=/home/username/gcc-8/bin/gcc
export CXX=/home/username/gcc-8/bin/g++

При распространении бинарника, скомпилированного этим компилятором, может понадобиться положить в архив с программой - libgcc.so.1 и libstdc++.so.6 из нового компилятора.

Исправление ZenitharChampion, :

Вот небольшая инструкция для тех, кто хочет скомпилировать новый GCC в старом дистрибутиве.

Лёгкий уровень: Ubuntu 16.04 (ядро 4.4)
Средний уровень: Debian 6 (ядро 2.6.32)
Сложный уровень: CentOS 4 (ядро 2.6.9)

Компилировать будем в /home/username/gcc-8. make install выполняем без sudo, потому что устанавливаем в директорию пользователя. Количество потоков сборки -jN для Intel CPU равно кол-ву реальных ядер (например -j4), для AMD FX - кол-ву ядер минус одно, например -j7.

Компилируем GMP

mkdir /home/username/builddir
cd /home/username/builddir
wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.bz2
tar xf gmp-6.1.2.tar.bz2
cd gmp-6.1.2
CPPFLAGS=-fexceptions ./configure --enable-cxx --prefix=/home/username/gcc-8
make -j4
make install

Компилируем MPFR

cd /home/username/builddir
wget https://www.mpfr.org/mpfr-current/mpfr-4.0.1.tar.bz2
tar xf mpfr-4.0.1.tar.bz2
cd mpfr-4.0.1
./configure --prefix=/home/username/gcc-8 --with-gmp=/home/username/gcc-8
make -j4
make install

Компилируем MPC

cd /home/username/builddir
wget https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
tar xf mpc-1.1.0.tar.gz
cd mpc-1.1.0
./configure --prefix=/home/username/gcc-8 --with-gmp=/home/username/gcc-8 --with-mpfr=/home/username/gcc-8
make -j4
make install

Компилируем MPC

cd /home/username/builddir
wget http://isl.gforge.inria.fr/isl-0.20.tar.bz2
tar xf isl-0.20.tar.bz2
cd isl-0.20
./configure --prefix=/home/username/gcc-8 --with-gmp=/home/username/gcc-8 --with-mpfr=/home/username/gcc-8 --with-mpc=/home/username/gcc-8
make -j4
make install

Компилируем GCC

cd /home/username/builddir
wget http://mirror.linux-ia64.org/gnu/gcc/releases/gcc-8.2.0/gcc-8.2.0.tar.gz
tar xf gcc-8.2.0.tar.gz
cd gcc-8.2.0
mkdir objdir
cd objdir
export LD_LIBRARY_PATH=/home/username/gcc-8/lib:$LD_LIBRARY_PATH
../configure --prefix=/home/username/gcc-8 --enable-languages=c,c++ --with-gmp=/home/username/gcc-8 --with-mpfr=/home/username/gcc-8 --with-mpc=/home/username/gcc-8 --with-isl=/home/username/gcc-8
make -j4
make install

Использовать так:

export CC=/home/username/gcc-8/bin/gcc
export CXX=/home/username/gcc-8/bin/g++

При распространении бинарника, скомпилированного этим компилятором, может понадобиться положить в архив с программой - libgcc.so.1 и libstdc++.so.6 из нового компилятора.

Исправление ZenitharChampion, :

Вот небольшая инструкция для тех, кто хочет скомпилировать новый GCC в старом дистрибутиве.

Лёгкий уровень: Ubuntu 16.04 (ядро 4.4)
Средний уровень: Debian 6 (ядро 2.6.32)
Сложный уровень: CentOS 4 (ядро 2.6.9)

Компилировать будем в /home/username/gcc-8. make install выполняем без sudo, потому что устанавливаем в директорию пользователя. Количество потоков сборки -j4 для Intel CPU равно кол-ву реальных ядер (для AMD FX - кол-ву ядер минус одно, например -j7).

Компилируем GMP

mkdir /home/username/builddir
cd /home/username/builddir
wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.bz2
tar xf gmp-6.1.2.tar.bz2
cd gmp-6.1.2
CPPFLAGS=-fexceptions ./configure --enable-cxx --prefix=/home/username/gcc-8
make -j4
make install

Компилируем MPFR

cd /home/username/builddir
wget https://www.mpfr.org/mpfr-current/mpfr-4.0.1.tar.bz2
tar xf mpfr-4.0.1.tar.bz2
cd mpfr-4.0.1
./configure --prefix=/home/username/gcc-8 --with-gmp=/home/username/gcc-8
make -j4
make install

Компилируем MPC

cd /home/username/builddir
wget https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
tar xf mpc-1.1.0.tar.gz
cd mpc-1.1.0
./configure --prefix=/home/username/gcc-8 --with-gmp=/home/username/gcc-8 --with-mpfr=/home/username/gcc-8
make -j4
make install

Компилируем MPC

cd /home/username/builddir
wget http://isl.gforge.inria.fr/isl-0.20.tar.bz2
tar xf isl-0.20.tar.bz2
cd isl-0.20
./configure --prefix=/home/username/gcc-8 --with-gmp=/home/username/gcc-8 --with-mpfr=/home/username/gcc-8 --with-mpc=/home/username/gcc-8
make -j4
make install

Компилируем GCC

cd /home/username/builddir
wget http://mirror.linux-ia64.org/gnu/gcc/releases/gcc-8.2.0/gcc-8.2.0.tar.gz
tar xf gcc-8.2.0.tar.gz
cd gcc-8.2.0
mkdir objdir
cd objdir
export LD_LIBRARY_PATH=/home/username/gcc-8/lib:$LD_LIBRARY_PATH
../configure --prefix=/home/username/gcc-8 --enable-languages=c,c++ --with-gmp=/home/username/gcc-8 --with-mpfr=/home/username/gcc-8 --with-mpc=/home/username/gcc-8 --with-isl=/home/username/gcc-8
make -j4
make install

Использовать так:

export CC=/home/username/gcc-8/bin/gcc
export CXX=/home/username/gcc-8/bin/g++

При распространении бинарника, скомпилированного этим компилятором, может понадобиться положить в архив с программой - libgcc.so.1 и libstdc++.so.6 из нового компилятора.

Исправление ZenitharChampion, :

Вот небольшая инструкция для тех, кто хочет скомпилировать новый GCC в старом дистрибутиве.

Лёгкий уровень: Ubuntu 16.04 (ядро 4.4)
Средний уровень: Debian 6 (ядро 2.6.32)
Сложный уровень: CentOS 4 (ядро 2.6.9)

Компилировать будем в /home/username/gcc-8. make install выполняем без sudo, потому что устанавливаем в директорию пользователя. Количество потоков сборки -j4 для Intel CPU равно кол-ву реальных ядер (для AMD FX - кол-ву ядер минус одно, например -j7).

Компилируем GMP

mkdir /home/username/builddir
cd /home/username/builddir
wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.bz2
tar xf gmp-6.1.2.tar.bz2
cd gmp-6.1.2
CPPFLAGS=-fexceptions ./configure --enable-cxx --prefix=/home/username/gcc-8
make -j4
make install

Компилируем MPFR

cd /home/username/builddir
wget https://www.mpfr.org/mpfr-current/mpfr-4.0.1.tar.bz2
tar xf mpfr-4.0.1.tar.bz2
cd mpfr-4.0.1
./configure --prefix=/home/username/gcc-8 --with-gmp=/home/username/gcc-8
make -j4
make install

Компилируем MPC

cd /home/username/builddir
wget https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
tar xf mpc-1.1.0.tar.gz
cd mpc-1.1.0
./configure --prefix=/home/username/gcc-8 --with-gmp=/home/username/gcc-8 --with-mpfr=/home/username/gcc-8
make -j4
make install

Компилируем MPC

cd /home/username/builddir
wget http://isl.gforge.inria.fr/isl-0.20.tar.bz2
tar xf isl-0.20.tar.bz2
cd isl-0.20
./configure --prefix=/home/username/gcc-8 --with-gmp=/home/username/gcc-8 --with-mpfr=/home/username/gcc-8 --with-mpc=/home/username/gcc-8
make -j4
make install

Компилируем GCC

cd /home/username/builddir
wget http://mirror.linux-ia64.org/gnu/gcc/releases/gcc-8.2.0/gcc-8.2.0.tar.gz
tar xf gcc-8.2.0.tar.gz
cd gcc-8.2.0
mkdir objdir
cd objdir
export LD_LIBRARY_PATH=/home/username/gcc-8/lib:$LD_LIBRARY_PATH
../configure --prefix=/home/username/gcc-8 --enable-languages=c,c++ --with-gmp=/home/username/gcc-8 --with-mpfr=/home/username/gcc-8 --with-mpc=/home/username/gcc-8 --with-isl=/home/username/gcc-8
make -j4
make install

Использовать так:

export CC=/home/username/gcc-8/bin/gcc
export CXX=/home/username/gcc-8/bin/g++

Исходная версия ZenitharChampion, :

Вот небольшая инструкция для тех, кто хочет скомпилировать новый GCC в старом дистрибутиве.

Лёгкий уровень: Ubuntu 16.04 (ядро 4.4)
Средний уровень: Debian 6 (ядро 2.6.32)
Сложный уровень: CentOS 4 (ядро 2.6.9)

Компилировать будем в /home/username/gcc-7. make install выполняем без sudo, потому что устанавливаем в директорию пользователя. Количество потоков сборки -j4 для Intel CPU равно кол-ву реальных ядер (для AMD FX - кол-ву ядер минус одно, например -j7).

Компилируем GMP

mkdir /home/username/builddir
cd /home/username/builddir
wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.bz2
tar xf gmp-6.1.2.tar.bz2
cd gmp-6.1.2
CPPFLAGS=-fexceptions ./configure --enable-cxx --prefix=/home/username/gcc-7
make -j4
make install

Компилируем MPFR

cd /home/username/builddir
wget https://www.mpfr.org/mpfr-current/mpfr-4.0.1.tar.bz2
tar xf mpfr-4.0.1.tar.bz2
cd mpfr-4.0.1
./configure --prefix=/home/username/gcc-7 --with-gmp=/home/username/gcc-7
make -j4
make install

Компилируем MPC

cd /home/username/builddir
wget https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
tar xf mpc-1.1.0.tar.gz
cd mpc-1.1.0
./configure --prefix=/home/username/gcc-7 --with-gmp=/home/username/gcc-7 --with-mpfr=/home/username/gcc-7
make -j4
make install

Компилируем MPC

cd /home/username/builddir
wget http://isl.gforge.inria.fr/isl-0.20.tar.bz2
tar xf isl-0.20.tar.bz2
cd isl-0.20
./configure --prefix=/home/username/gcc-7 --with-gmp=/home/username/gcc-7 --with-mpfr=/home/username/gcc-7 --with-mpc=/home/username/gcc-7
make -j4
make install

Компилируем GCC

cd /home/username/builddir
wget http://mirror.linux-ia64.org/gnu/gcc/releases/gcc-8.2.0/gcc-8.2.0.tar.gz
tar xf gcc-8.2.0.tar.gz
cd gcc-8.2.0
mkdir objdir
cd objdir
export LD_LIBRARY_PATH=/home/username/gcc-7/lib:$LD_LIBRARY_PATH
../configure --prefix=/home/username/gcc-7 --enable-languages=c,c++ --with-gmp=/home/username/gcc-7 --with-mpfr=/home/username/gcc-7 --with-mpc=/home/username/gcc-7 --with-isl=/home/username/gcc-7
make -j4
make install

Использовать так:

export CC=/home/username/gcc-7/bin/gcc
export CXX=/home/username/gcc-7/bin/g++