Детальная информация о пакете находится в Разделе 6.14.2, “Contents of GCC”.
Библиотека сайта rus-linux.net
5.5. GCC-3.4.1 - Шаг 1
Пакет GCC содержит коллекцию компилятора GNU, включая компиляторы C и C++.
Расчетное время сборки 4.4 SBU
Требуемое место на диске 300 MB
GCC - зависимости установки: Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, Gettext, Glibc, Grep, Make, Perl, Sed и Texinfo
5.5.1. Инсталируем GCC
Распакуйте только тарбол GCC-core, нам пока не нужен компилятор C++.
Этот пакет известен своим нестабильным поведением при компиляции
с измененными опциями оптимизации
(включая опции -march
и
-mcpu
). GCC рекомендуется компилировать с
настройками по умолчанию. Если вы задали переменные такие как
CFLAGS
и CXXFLAGS
, рекомендуется убрать их при сборке пакета GCC.
В документации по GCC рекомендуется собирать GCC вне директории с исходниками в отдельной директории для сборки:
mkdir ../gcc-build cd ../gcc-build
Подготавливаем GCC для компиляции:
../gcc-3.4.1/configure --prefix=/tools \ --libexecdir=/tools/lib --with-local-prefix=/tools \ --disable-nls --enable-shared --enable-languages=c
Описание опций конфигурации:
-
--with-local-prefix=/tools
-
Назначение этого переключателя - исключить
/usr/local/include
из пути поиска включений gcc. Это не очень существенно, но мы собираемся минимизировать зависимомть от основной системы, и мы считаем, что это нужно сделать. -
--enable-shared
-
Этот переключатель может показаться интуитивно понятным поначалу. Но его использование допускает сборку
libgcc_s.so.1
иlibgcc_eh.a
, а также делаетlibgcc_eh.a
доступным для скрипта конфигурации Glibc (следующего компилируемого пакета), выдавая правильный результат. Заметьте, что бинарники компонуются статически, если это задано значением-static
для переменнойBOOT_LDFLAGS
далее. -
--enable-languages=c
-
Эта опция позволяет быть увереным, что будет собран только компилятор C. Она нужна только в том случае, если вы скачали и распаковали полный тарбол.
Продолжим компиляцию пакета:
make BOOT_LDFLAGS="-static" bootstrap
Описание параметров сборки:
-
BOOT_LDFLAGS="-static"
-
Это скажет GCC компоновать программы статически.
-
bootstrap
-
Этот параметр заставляет не просто компилироваться GCC, а компилироваться несколько раз. Программы, скомпилированые сначала используются для компиляции программ еще раз, а те, в свою очередь, используются при компиляции в третий раз. Идентичность второй и третьей компиляции позволяет убедиться в корректности сборки.
Компиляция проведена. На этом этапе обычно выполняется тест, но как было сказано ранее, мы еще не имеем полного набора тестовых утилит на своем месте. Кроме того, смысл запуска теста на этом этапе минимален т.к. программы, собранные на этом шаге скоро будут заменены.
Устанавливаем пакет
make install
Многие программы и скрипты используют cc вместо gcc для обеспечения переносимости программ на все Unix системы. Не у всех установлен именно компилятор GNU C. Запуск cc позволяет администратору выбирать, какой компилятор C устанавливать в систему, и мы создаем ссылку на него:
ln -s gcc /tools/bin/cc