From 798721f6806da3287ec11d713590a806390bcc4d Mon Sep 17 00:00:00 2001 From: makpif <81463676+makpif@users.noreply.github.com> Date: Wed, 5 May 2021 15:37:17 +0300 Subject: [PATCH] Add files via upload --- docs/build-temp-system/gcc-p2.md | 134 +++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 docs/build-temp-system/gcc-p2.md diff --git a/docs/build-temp-system/gcc-p2.md b/docs/build-temp-system/gcc-p2.md new file mode 100644 index 00000000..e646aa97 --- /dev/null +++ b/docs/build-temp-system/gcc-p2.md @@ -0,0 +1,134 @@ + + + + +## Настройка + +### Дополнительные необходимые файлы + +{{ mpc.url}} + +{{ gmp.url}} + +{{ mpfr.url}} + +{{ isl.url}} + +Сначала распакуйте дополнительные пакеты: + +!> Обратите внимание, что распаковка указанных пакетов должна производится из каталога пакета GCC. + +
+tar -xf ../{{ mpfr.fileName }}
+mv -v {{ mpfr.name }}-{{ mpfr.version }} {{ mpfr.name }}
+tar -xf ../{{ gmp.fileName }}
+mv -v {{ gmp.name }}-{{ gmp.version }} {{ gmp.name }}
+tar -xf ../{{ mpc.fileName }}
+mv -v {{ mpc.name }}-{{ mpc.version }} {{ mpc.name }}
+tar -xf ../{{ isl.fileName }}
+mv -v {{ isl.name }}-{{ isl.version }} {{ isl.name }}
+
+ +Смените пути установки библиотек: + +```bash +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 +``` + +В документации пакета {{package.name}} рекомендуется использовать отдельную директорию для сборки: + +```bash +mkdir build +cd build +``` + +Разрешим сборку ``libgcc`` с поддержкой много-поточности: + +```bash +mkdir -pv $LIN_TGT/libgcc +ln -s ../../../libgcc/gthr-posix.h $LIN_TGT/libgcc/gthr-default.h +``` + +Сначала запустим скрипт `configure`: +```bash +../configure \ + --build=$(../config.guess) \ + --host=$LIN_TGT \ + --prefix=/usr \ + CC_FOR_TARGET=$LIN_TGT-gcc \ + --with-build-sysroot=$LIN \ + --enable-initfini-array \ + --disable-nls \ + --disable-decimal-float \ + --disable-libatomic \ + --disable-libgomp \ + --disable-libquadmath \ + --disable-libssp \ + --disable-libvtv \ + --disable-libstdcxx \ + --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, --disable-libstdcxx` Эти переключатели отключают поддержку десятичных расширений с плавающей запятой, потоковой передачи, libatomic, libgomp, libquadmath, libssp, libvtv и стандартной библиотеки C ++ соответственно. Эти функции не будут скомпилированы при сборке кросс-компилятора и не являются необходимыми для кросс-компиляции временной libc. + +`--enable-languages ​​= c, c ++` Эта опция гарантирует, что будут построены только компиляторы C и C ++. Это единственные языки, которые нужны сейчас. + +## Сборка + +```bash +make +``` + +## Установка +```bash +make DESTDIR=$LIN install +``` + +Некоторые программы используют команду ``cc``, а не ``gcc``. Создайте символическую ссылку на ``gcc``: + +```bash +ln -sv gcc $LIN/usr/bin/cc +```