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