Lx4U-book/docs/build-system/gcc.md
2021-06-12 12:36:17 +03:00

4.3 KiB
Raw Blame History

Подготовка

Исправьте пути установки библиотек:

Настройка

?> На данном этапе необходимы только компиляторы для C и C++, однако, вы можете собрать компиляторы для любых, поддерживаемых GCC, языков программирования, перечислив их через запятые в опции configure --enable-languages=c,c++. GCC поддерживает следующие языки - c,c++,d,fortran,go,objc,obj-c++. Вы можете собрать все доступные компиляторы добавив параметр --enable-languages=c,c++,d,fortran,go,objc,obj-c++. Если позднее вам потребуется компилятор для какого либо языка из этого списка - пересоберите GCC с его поддержкой.

Для multilib

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

--disable-bootstrap - Предотвращает многократную пересборку GCC

LD=ld - Сообщает GCC использовать ранее установленную версию компоновщика

Сборка

Тестирование

  • Увеличьте размер стека по умолчанию
  • Произведите тестирование от непривилегированного пользователя во избежание непредвиденных ситуаций с системой.

Тестирование занимает достаточно большое время. Учитывайте это.

Для просмотра итогов теста выполните:

../contrib/test_summary

?> Известно, что 6 тестов, связанных с get_time, дают сбои. По видимому, это связано с локалью en_HK. Кроме того, тест COSTEXPR-52830 не удается.

Установка

  • Удалите ненужную директорию,
  • Убедитесь что владелец установленных заголовков корректный,
  • По историческим причинам некоторые программы могут пытаться найти cpp в директории /lib. Создайте ссылку,
  • Для поддержки LTO требуется следующая символическая ссылка,
  • Переместите файлы в правильное место:

Проверьте работоспособность:

echo 'int main(){}' > dummy.c
cc dummy.c
./a.out | echo succes

Для multilib:

echo 'int main(){}' > dummy.c
cc -m32 dummy.c
./a.out | echo succes

Удалите тестовые файлы:

rm -v dummy.c a.out

Установленные файлы

Программы: c++ (ссылка на g++), cc (ссылка на gcc), cpp, g++, gcc, gcc-ar, gcc-nm, gcc-ranlib, gcov, gcov-dump и gcov-tool

Библиотеки: libasan.{a,so}, libatomic.{a,so}, libcc1.so, libgcc.a, libgcc_eh.a, libgcc_s.so, libgcov.a, libgomp.{a,so}, libitm.{a,so}, liblsan.{a,so}, liblto_plugin.so, libquadmath.{a,so}, libssp.{a,so}, libssp_nonshared.a, libstdc++.{a,so}, libstdc++fs.a, libsupc++.a, libtsan.{a,so} и libubsan.{a,so}

Директории: /usr/include/c++, /usr/lib/gcc, /usr/libexec/gcc и /usr/share/gcc-11.1.0