Библиотека сайта rus-linux.net
Ошибка базы данных: Table 'a111530_forumnew.rlf1_users' doesn't exist
Linux From Scratch (version 6.8) | ||
Назад | Глава 5. Создание временной версии системы | Вперед |
5.5. Пакет GCC-4.5.2 — Первый проход
Приблизительное время сборки: 5,0 SBU
Требуемое дисковое пространство: 809 MB
5.5.1. Кросс установка пакета GCC
Для сборки пакета GCC теперь нужны пакеты GMP, MPFR и MPC. Поскольку эти пакеты нельзя брать из вашей хост системы, их надо собирать вместе с GCC. Распакуйте каждый пакет в директорий с исходными кодами GCC и переименуйте получившиеся в результате директории так, чтобы процедуры сборки GCC смогли ими автоматически пользоваться:
tar -jxf ../mpfr-3.0.0.tar.bz2 mv -v mpfr-3.0.0 mpfr tar -jxf ../gmp-5.0.1.tar.bz2 mv -v gmp-5.0.1 gmp tar -zxf ../mpc-0.8.2.tar.gz mv -v mpc-0.8.2 mpc
В документации по GCC рекомендуется собирать GCC в отдельном директории, предназначенном для сборки, а не в директории с исходными кодами:
mkdir -v ../gcc-build cd ../gcc-build
Подготавливаем пакет GCC для компиляции:
../gcc-4.5.2/configure \ --target=$LFS_TGT --prefix=/tools \ --disable-nls --disable-shared --disable-multilib \ --disable-decimal-float --disable-threads \ --disable-libmudflap --disable-libssp \ --disable-libgomp --enable-languages=c \ --with-gmp-include=$(pwd)/gmp --with-gmp-lib=$(pwd)/gmp/.libs \ --without-ppl --without-cloog
Пояснение конфигурационных параметров:
--disable-shared | |
Этот параметр указывает GCC компоновать свои внутренние библиотеки статически. Мы делаем это с тем, чтобы избежать возможных проблем с хост системой. |
|
--disable-decimal-float, --disable-threads, --disable-libmudflap, --disable-libssp, --disable-libgomp | |
Эти переключатели отключают соответственно поддержку десятичной арифметики с плавающей точкой, потоков, а также библиотек libmudflap, libssp и libgomp. Эти возможности недоступны при сборке кросс-компилятора и они не требуются для кросс-компиляции временной библиотеки Libc. |
|
--disable-multilib | |
Для архитектуры x86_64 в системе LFS конфигурация multilib не поддерживается. Этот переключатель никак не влияет на работу с архитектурой x86. |
|
--enable-languages=c | |
Этот параметр гарантирует, что будет собран только компилятор C. Это единственный язык, который сейчас нужен. |
|
--with-gmp-include=... | |
Этот параметр указывает GCC, где расположены заголовки GMP. |
|
--with-gmp-lib=... | |
Этот параметр указывает GCC, где расположена библиотека GMP. |
|
--without-ppl, --without-cloog | |
Эти переключатели предотвращают при построении GCC использование библиотек PPL и ClooG, которые могут быть в хост системе, но их не будет в среде, в которую вы переключитесь с помощь команды chroot. |
Откомпилируйте GCC с помощью команды:
make
Компиляция теперь завершена. Обычно в этот момент следует запустить набор тестов, но, как уже упоминалось ранее, фреймворк для наборов тестов еще не установлен. Преимущества запуска тестов в настоящий момент минимальные, поскольку программы, созданные на этом первом прохода, скоро будут заменены.
Установите пакет:
make install
Использование параметра --disable-shared
означает, что файл libgcc_eh.a
не будет создан и установлен. Пакет Glibc зависит от этой библиотеки, поскольку в процессе сборки этой библиотеки используется функция -lgcc_eh
. Эту зависимость можно разрешить с помощью создания символической ссылки на файл libgcc.a
, поскольку в этом файле, в конце концов, будут храниться объекты, которые обычно находятся в libgcc_eh.a
:
ln -vs libgcc.a `$LFS_TGT-gcc -print-libgcc-file-name | \ sed 's/libgcc/&_eh/'`
Подробности об этом пакете приведены в разделе " Описание пакета GCC".
Предыдущий раздел: | Оглавление | Следующий раздел: |
Пакет Binutils-2.21 - Первый проход | Заголовки Linux-2.6.37 API |