cat << 'EOF' > ~/lfs-builder/packages/022-gcc-p2.sh #!/bin/bash set -e # Очищаем переменные хоста, чтобы они не ломали кросс-компиляцию unset CFLAGS unset CXXFLAGS # Распаковываем математические библиотеки внутрь корня GCC tar -xf ../mpfr-4.2.1.tar.xz && mv -v mpfr-4.2.1 mpfr tar -xf ../gmp-6.3.0.tar.xz && mv -v gmp-6.3.0 gmp tar -xf ../mpc-1.3.1.tar.gz && mv -v mpc-1.3.1 mpc # Настройка динамического линкера под x86_64 case $(uname -m) in x86_64) sed -e '/m64=/s/lib64/lib/' -i.bak gcc/config/i386/t-linux64 ;; esac # Отключаем устаревший макрос Dialogue, если он присутствует sed '/Dialogue on/d' -i gcc/cp/cfns.gperf || true mkdir -v build cd build # Предотвращаем конфликты сборки лимитов libstdc++ mkdir -pv $LFS_TGT/libstdc++-v3/src/.libs ../configure \ --build=$(../config.guess) \ --host=$LFS_TGT \ --target=$LFS_TGT \ --prefix=/usr \ --with-glibc-version=2.39 \ --with-sysroot=$LFS \ --enable-languages=c,c++ \ --enable-default-pie \ --enable-default-ssp \ --disable-nls \ --disable-multilib make $MAKEFLAGS make DESTDIR=$LFS install # Создаем критически важную ссылку на cc, чтобы chroot-среда видела компилятор по умолчанию ln -sfv gcc $LFS/usr/bin/cc EOF chmod +x ~/lfs-builder/packages/022-gcc-p2.sh