Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Ошибка базы данных: Table 'a111530_forumnew.rlf1_users' doesn't exist
На главную -> MyLDP -> Электронные книги по ОС Linux
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



Средняя оценка 4 при 2 голосовавших

Комментарии