Перейти к содержанию

gcc⚓︎

Пакет содержит набор компиляторов GNU для таких языков как Си и Си++.

Версия: 11.2.0

Размер: 77.14Mb

Приоритет: Необходимый

Оригинальное расположение: https://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.xz

Ссылка для загрузки: https://lx4u.ru/downloads/packages/gcc-11.2.0.tar.xz

MD5: 31c86f2ced76acac66992eeedce2fce2

Домашняя страница: https://gnu.org/software/gcc

SBU (Сборка временной системы): 14.8

SBU: 25

Подготовка⚓︎

Предупреждение

Распаковка указанных пакетов должна производиться из каталога gcc-11.2.0. Проверьте текущее местоположение, прежде чем выполнить команды ниже.

tar -xf ../mpfr-4.1.0.tar.xz
mv -v mpfr-4.1.0 mpfr
tar -xf ../gmp-6.2.1.tar.xz
mv -v gmp-6.2.1 gmp
tar -xf ../mpc-1.2.1.tar.gz
mv -v mpc-1.2.1 mpc
tar -xf ../isl-0.24.tar.xz
mv -v isl-0.24 isl

Смените пути установки библиотек:

sed -e '/m64=/s/lib64/lib/' \
    -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \
    -i.orig gcc/config/i386/t-linux64

Пакет GCC требует использовать отдельную директорию для сборки. Создайте её:

mkdir -v build
cd       build

Исправьте ошибку кросс-компиляции `libstdc++':

sed 's/gnu++17/& -nostdinc++/' \
    -i libstdc++-v3/src/c++17/Makefile.in

Разрешим сборку libgcc с поддержкой многопоточности:

sed '/thread_header =/s/@.*@/gthr-posix.h/' \
    -i libgcc/Makefile.in libstdc++-v3/include/Makefile.in

Настройка:

../configure                                       \
    --build=$(../config.guess)                     \
    --host=$LIN_TGT                                \
    --target=$LIN_TGT                              \
    LDFLAGS_FOR_TARGET=-L$PWD/$LIN_TGT/libgcc      \
    --prefix=/usr                                  \
    --with-build-sysroot=$LFS                      \
    --enable-initfini-array                        \
    --disable-nls                                  \
    --disable-multilib                             \
    --disable-decimal-float                        \
    --disable-libatomic                            \
    --disable-libgomp                              \
    --disable-libquadmath                          \
    --disable-libssp                               \
    --disable-libvtv                               \
    --enable-languages=c,c++                       \
    --disable-multilib

Для multilib⚓︎

замените параметр --disable-multilib на --enable-multilib --with-multilib-list=m64,m32

Значения параметров⚓︎

--enable-initfini-array - параметр заставляет использовать некоторые внутренние структуры данных, которые необходимы, но не могут быть обнаружены при построении кросс-компилятора.

--disable-decimal-float, --disable-threads, --disable-libatomic, --disable-libgomp, --disable-libquadmath, --disable-libssp, --disable-libvtv - параметры отключают поддержку десятичных расширений с плавающей запятой, потоковой передачи, libatomic, libgomp, libquadmath, libssp и libvtv не требующиеся на данном этапе.

--enable-languages​​=c,c++ - опция включает поддержку компиляторов C и C++. Это единственные языки, которые нужны сейчас.

Сборка⚓︎

make

Установка⚓︎

make DESTDIR=$LIN install

Некоторые программы используют команду cc, а не gcc. Создайте символическую ссылку на gcc:

ln -sv gcc $LIN/usr/bin/cc
К началу