Пакет GCC содержит коллекцию компилятора GNU, включая компиляторы C и C++.
Расчетное время сборки 4.4 SBU
Требуемое место на диске 300 MB
GCC зависит от установки: Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, Gettext, Glibc, Grep, Make, Perl, Sed и Texinfo.
Распакуйте только 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
Описание опций конфигурации:
Назначение этого переключателя: исключить /usr/local/include из пути поиска включений gcc . Это не очень существенно, но мы собираемся минимизировать зависимомть от основной системы, и я считаю, что это нужно сделать.
Этот переключатель может показаться интуитивно понятным поначалу. Но его использование допускает сборку libgcc_s.so.1 и libgcc_eh.a , а также делает libgcc_eh.a доступным для скрипта конфигурации Glibc (следующего компилируемого пакета), выдавая правильный результат. Заметьте, что бинарники компонуются статически, если это задано значением -static для переменной BOOT_LDFLAGS далее.
Эта опция позволяет быть увереным, что будет собран только компилятор C. Она нужна только в том случае, если Вы скачали и распаковали полный архив.
Продолжим компиляцию пакета:
make BOOT_LDFLAGS="-static" bootstrap
Описание параметров сборки:
Это скажет GCC компоновать программы статически.
Этот параметр заставляет не просто компилироваться GCC, а компилироваться несколько раз. Скомпилированные программы сначала используются для компиляции программ еще раз, а те, в свою очередь, используются при компиляции в третий раз. Идентичность второй и третьей компиляции позволяет убедиться в корректности сборки.
Компиляция проведена. На этом этапе обычно выполняется тест, но как было сказано ранее, мы еще не имеем полного набора тестовых утилит на своем месте. Кроме того, смысл запуска теста на этом этапе минимален так как программы, собранные на этом шаге, скоро будут заменены.
Устанавливаем пакет:
make install
Многие программы и скрипты используют cc вместо gcc для обеспечения переносимости программ на все Unix-системы. Не у всех установлен именно компилятор GNU C. Запуск cc позволяет администратору выбирать, какой компилятор C устанавливать в систему, и мы создаем ссылку на него:
ln -s gcc /tools/bin/cc
Детальная информация о пакете находится в разделе 6.14.2. “Описание GCC”.