Установка GCC-3.3.1 - Шаг 1

Ожидаемое время сборки:           4.4 SBU
Ожидаемое место на диске: 300 MB

Описание GCC

Пакет GCC pсодержит коллекцию компилятора GNU, включая компиляторы C и C++.

Устанавливаемые программы: c++, cc (link to gcc), cc1, cc1plus, collect2, cpp, g++, gcc, gccbug и gcov

Устанавливаемые библиотеки: libgcc.a, libgcc_eh.a, libgcc_s.so, libstdc++.[a,so] и libsupc++.a

Зависимости установки GCC

GCC зависит от: Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.

Установка GCC

Распакуйте только тарбол GCC-core, нам пока не нужен компилятор C++.

Замечание: Несмотря на то, что GCC является очень важным пакетом средств, мы не запускаем сейчас тестирование. Во-первых, тестирование сейчас не нужно, а во-вторых, программы из этого шага будут переписаны на следующем.

Этот пакет известен своим нестабильным поведением при компиляции с измененными опциями оптимизации (включая опции -march и -mcpu). GCC рекомендуется компилировать с настройками по умолчанию. Следовательно, если вы задали переменные такие как CFLAGS или CXXFLAGS, изменяющие уровень оптимизации по умолчанию, рекомендуется убрать их при сборке пакета GCC. Изменяя оптимизации для GCC, вы действуете на свой страх и риск.

В документации по GCC рекомендуется собирать GCC вне директории с исходниками в отдельной директории для сборки:

mkdir ../gcc-build
cd ../gcc-build

Подготовим GCC к компиляции:

../gcc-3.3.1/configure --prefix=/tools \
--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 (следующего компилируемого пакета), выдавая правильный результат. Заметьте, что бинарники gcc компонуются статически, если это задано значением -static для BOOT_LDFLAGS далее.

  • --enable-languages=c: Эта опция позволяет буть увереным, что будет собран только компилятор C. "Она нужна только в том слущае, если вы скачали и распаковали полный тарбол.

Продолжим компиляцию пакета:

make BOOT_LDFLAGS="-static" bootstrap

Описание параметров сборки:

  • BOOT_LDFLAGS="-static": Это скажет GCC компоновать эти программы статически.

  • bootstrap: Этот параметр заставляет не просто компилироваться GCC, а компилироваться несколько раз. Программы, скомпилированые сначала используются для компиляции программ еще раз, а те, в свою очередь, используются при компиляции в третий раз. Идентичность второй и третьей компиляции позволяет убедиться в корректности сборки.

И установим пакет:

make install

Под конец мы создадим ссылку /tools/bin/cc. Многие программы и скрипты используют cc вместо gcc для обеспечения переносимости программ на все Unix системы. Не у всех установлен именно компилятор GNU C. Запуск cc позволяет администратору выбирать, какой компилятор C устанавливать в систему, и мы создаем ссылку на него:

ln -sf gcc /tools/bin/cc


Наш баннер
Вы можете установить наш баннер на своем сайте или блоге, скопировав этот код:
RSS новости