Пакет GCC содержит GNU компиляторы. Они полезны для компилирования программ написанных на C, C++, Fortran, Java, Objective C и Ada.
Адрес (HTTP): http://mirrors.rcn.net/pub/sourceware/gcc/releases/gcc-3.4.1/gcc-3.4.1.tar.bz2
Адрес (FTP): ftp://mirrors.rcn.net/pub/sourceware/gcc/releases/gcc-3.4.1/gcc-3.4.1.tar.bz2
Контрольная сумма: 31b459062499f9f68d451db9cbf3205c
Размер: 27.2 MB
Требуемое дисковое пространство: 1.53 GB
Расчетное время сборки: 48.94 SBU
Требуемый патч: http://www.linuxfromscratch.org/blfs/downloads/6.0/gcc-3.4.1-no_fixincludes-1.patch
Требуемый патч: http://www.linuxfromscratch.org/blfs/downloads/6.0/gcc-3.4.1-linkonce-1.patch
Тесты: http://mirrors.rcn.net/pub/sourceware/gcc/releases/gcc-3.4.1/gcc-testsuite-3.4.1.tar.bz2
Контрольная сумма тестов: 641f45606e17db4a3079cb7364a9e295
Если вы планируете компилировать Ada, то вам необходимо будет временно установить GNAT для удовлетворения зависимости при перекомпиляции GCC для включения Ada.
Адрес (FTP): ftp://cs.nyu.edu/pub/gnat/3.15p/gnat-3.15p-i686-pc-redhat71-gnu-bin.tar.gz
Контрольная сумма: 57c060cd1ccef8b1ae9165b11d98780a
Размер: 13.5 MB
Требуемое дисковое пространство: 48 MB
Расчетное время сборки: 0.01 SBU
Установим GNAT запуском следующей команды:
./doconfig
Этот скрипт спросит вас о том, как и куда вы хотели бы установить GNAT. Для исключения конфликтов с системным gcc пакет будет установлен в отдельную директорию, которая позднее может быть удалена из системы.
В ответ на вопросы, заданные скриптом doconfig, введите 3 в ответ на первый вопрос и /opt/gnat в ответ на второй вопрос.
Для окончания установки запустите следующую команду под пользователем root:
./doinstall
Компилятор GNAT может быть вызван выполнением бинарника gcc, установленного приведенным выше скриптом.
Подготовимся к компиляции GCC размещением GNAT gcc в начале переменной PATH выполнением следующих команд:
PATH_HOLD=$PATH &&
export PATH=/opt/gnat/bin:$PATH
Установим GCC запуском следующих команд:
Процесс установки может переписать ваш имеющийся компилятор GCC и библиотеки. Очень рекомендуется наличие в системе установленных пакетов Tcl, Expect и DejaGnu, а так же распакованный тарбол с тестами GCC перед началом сборки.
Не выполняйте команду make install пока вы не убедитесь в успешности сборки. Вы можете сравнить ваши результаты тестов с результатами, находящимися на http://gcc.gnu.org/ml/gcc-testresults/. Представленые результаты тестов на платформе i686 для системы LFS-6.0 находятся на http://linuxfromscratch.org/~randy/gcc341_test.txt. Вы так же можете захотеть обратиться к информации, находящейся в разделе GCC-Шаг 2 Главы 5 в книге LFS ( ../../../../lfs/view/6.0/chapter05/gcc-pass2.html).
Некоторые из Java программ, установленные в пакете GCC, конфликтуют (имеют те же имена) с программами из пакета J2SDK-1.4.2. Если вы устанавливаете язык Java из пакета GCC но хотите использовать по умолчанию программы из J2SDK, убедитесь что $JAVA_HOME/bin указана перед /usr/bin в вашей переменной PATH.
patch -Np1 -i ../gcc-3.4.1-no_fixincludes-1.patch &&
patch -Np1 -i ../gcc-3.4.1-linkonce-1.patch &&
sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in &&
mkdir ../gcc-build &&
cd ../gcc-build &&
../gcc-3.4.1/configure --prefix=/usr --libexecdir=/usr/lib \
--enable-shared --enable-threads=posix --enable-__cxa_atexit \
--enable-clocale=gnu --enable-languages=c,c++,objc,f77,ada,java &&
make bootstrap &&
make -C gcc gnatlib-shared &&
make -C gcc gnattools &&
make -k check &&
../gcc-3.4.1/contrib/test_summary
А теперь, как пользователь root:
make install &&
ln -v -sf ../usr/bin/cpp /lib &&
ln -v -sf gcc /usr/bin/cc &&
ln -v -sf g77 /usr/bin/f77 &&
chown -v -R root:root /usr/lib/gcc/i686-pc-linux-gnu/3.4.1/include &&
chown -v -R root:root /usr/lib/gcc/i686-pc-linux-gnu/3.4.1/ada{lib,include}
Вы можете удалить установку GNAT и восстановить ваш старый PATH:
rm -rf /opt/gnat &&
export PATH=$PATH_HOLD
sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in: Эта команда заперщает установку libiberty.a, поскольку будет использоваться версия, предоставленная в Binutils.
mkdir ../gcc-build; cd ../gcc-build: Документация GCC рекомендует производить сборку пакета в отдельной директории.
--enable-shared --enable-threads=posix --enable-__cxa_atexit: Эти команды необходимы для сборки C++ библиотеки в опубликованных стандартах.
--enable-clocale=gnu: Эта команда служит для безопасности работы с неполными данными локалей.
--enable-languages=c,c++,objc,f77,ada,java: Эта команда определяет собираемые языки программирования. Вы можете исключить из нее ненужные языки.
make -C gcc gnatlib-shared: Эта команда собирает разделяемые и статические библиотеки Ada. Пропустите этот шаг, если вы не используете Ada в качестве одного из языков.
make -C gcc gnattools: Эта коанда собирает средства разработки и бинарники Ada. Пропустите этот шаг, если вы не используете Ada в качестве одного из языков.
make -k check: Эта команда запускает тест в режиме без остановки в случае обнаружения ошибок.
../gcc-3.4.1/contrib/test_summary: Эта команда предоставляет суммарный результат выполнения тестов. Вы можете добавить в команду | grep -A7 Summ для предоставления более сжатой версии результатов. Вы можете так же захотеть перенаправить вывод в файл для последующего просмотра и сравнения.
ln -sf ../usr/bin/cpp /lib: Эта команда создает ссылку на предпроцессор C, поскольку некоторые пакеты ожидают его установку в директории /lib.
ln -sf gcc /usr/bin/cc; ln -sf g77 /usr/bin/f77: Эти ссылки создаются, поскольку некоторые пакеты обращаются к компиляторам C и Fortran, используя альтернативные имена.
chown -R root:root /usr/lib/gcc/i686-pc-linux-gnu/...: Если пакет собран пользователем, отличным от root, то владелец установленных директорий include и adalib (и их содержимого) будет некорректным. Эти команды изменяют владельца на root:root. Пропустите команду, изменяющую директории Ada, если вы не включили Ada в список усанавливаемых языков.
Описаня некоторых программ и библиотек здесь не представлены, но они могут быть найдены в ../../../../lfs/view/6.0/chapter06/gcc.html#contents-gcc.
эмулирует некоторую функциональность addr2line.
ссылка на g77, созданная в целях совместимости.
компилятор Fortran, вызываемый из gcc.
первоначальный компилятор для языка Java.
генерирует файлы заголовков из файлов Java классов.
интерпретатор GNU для кода Java.
компилятор Ada, вызываемый из gcc.
используется для связывания скомпилированных объектов.
компоновщик Ada.
полезен для переименования файлов для соответствия стандартам соглашений именования файлов Ada.
используется для удаления файлов, связанных с проектом GNAT.
поисковик описаний/использования GNAT.
используется для компоновки программ и сборки исполняемого файла.
компилированный браузер элементов.
автоматический make.
перечисляет файлы, ассоциированные с проектом GNAT.
внешний предпроцессор GNAT.
GNAT создатель перекрестных ссылок.
средство, используемое для создания файлов Makefile, которые поддерживают компиляцию с различных языков.
утилита, используемая Makefile.generic для поддержки многоязыковых сборок. Она предоставляет набор команд, благодаря которым файлам Makefile не надо зависеть от Unix утилит, которые не доступны везде.
ищет jar файлы по образцу.
средство для работы с Java архивами.
печатает информацию о файлах Java классов.
преобразует файлы из одной кодировки в другую.
печатает информацию об исходных файлах Java.
генерирует остатки для метода удаленного вызова.
запускает регистрацию удаленного объекта на текущем хосте.
Последнее обновление 2005-02-28 13:39:06 -0700