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








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

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

Ошибка базы данных: Table 'a111530_forumnew.rlf1_users' doesn't exist
На главную -> MyLDP -> Электронные книги по ОС Linux
Linux From Scratch (version 6.8)
Назад Глава 5. Создание временной версии системы Вперед

5.7. Пакет Glibc-2.13

В пакете Glibc находится основная библиотека C. В этой библиотеке находятся базовые процедуры распределения памяти, поиска в директориях, открытия и закрытия файлов, чтения и записи файлов, обработки строк, сравнения по образцам, арифметических операций и так далее.

Приблизительное время сборки: 6,9 SBU

Требуемое дисковое пространство: 371 MB

5.7.1. Установка пакета Glibc

Исправьте ошибку, которая не позволяет собирать пакет Glibc с помощью компилятора GCC-4.5.2:

patch -Np1 -i ../glibc-2.13-gcc_fix-1.patch

Документация по Glibc рекомендует собирать пакет Glibc в отдельном директории, предназначенном для сборки, а не в директории с исходными кодами:

mkdir -v ../glibc-build
cd ../glibc-build

Поскольку в пакете Glibc больше не поддерживается архитектура i386, его разработчики в случае, когда выполняется сборка для машин с архитектурой x86, рекомендуют использовать флаг компилятора -march=i486. Это можно сделать несколькими способами, но проверка показала, что флаг лучше всего присвоить в качестве значения переменной "CFLAGS". Вместо того, чтобы полностью переопределять значение, используемое для внутренних системных нужд пакета Glibc, добавьте новый флаг к уже существующему содержимому CFLAGS, использовав для этого специальный конфигурационный файл configparms. Также нужен флаг -mtune=native, которые для -mtune переустановит соответствующее значение, измененное при установке параметра -march.

case `uname -m` in
  i?86) echo "CFLAGS += -march=i486 -mtune=native" > configparms ;;
esac

Затем подготовьте пакет Glibc для компиляции:

../glibc-2.13/configure --prefix=/tools \
    --host=$LFS_TGT --build=$(../glibc-2.13/scripts/config.guess) \
    --disable-profile --enable-add-ons \
    --enable-kernel=2.6.22.5 --with-headers=/tools/include \
    libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes

Пояснение конфигурационных параметров:

--host=$LFS_TGT, --build=$(../glibc-2.13/scripts/config.guess)
 

Совокупный эффект этих ключей состоит в том, что система сборки Glibc будет сконфигурована для кросс-компиляции, выполняемой с использованием кросс-компоновщика и кросс-компилятора, расположенных в директории /tools.

--disable-profile
 

Библиотеки собираются без информации о профиле. Не используйте этот параметр, если во временном наборе инструментальных средств нужно использовать информацию о профиле (т. е. нужен файл profileприм.пер.).

--enable-add-ons
 

Этот параметр указывает пакету Glibc использовать дополнительный пакет NPTL в качестве библиотеки работы с потоками.

--enable-kernel=2.6.22.5
 

Этот параметр указывает пакету Glibc компилировать библиотеку с поддержкой ядра Linux версии 2.6.22.5 и более поздних версий. Возможность использовать более старые ядра отключена.

--with-headers=/tools/include
 

Этот параметр указывает, что Glibc будет компилироваться с заголовками, недавно установленными в директории tools, так что будет точно известно, какие возможность предоставляются ядром и можно ли, в связи с этим, выполнять оптимизацию.

libc_cv_forced_unwind=yes
 

Компоновщик, установленный в разделе 5.4, "Binutils-2.21 — Первый проход", был собран с помощью кросс-компиляции и, следовательно, им нельзя будет пользоваться до тех пор, пока не будет установлена библиотека Glibc. Это означает, что не удастся выполнить проверку поддержки функции force-unwind, поскольку это можно сделать только для работающего компоновщика. Значение libc_cv_forced_unwind=yes передается для того, чтобы информировать скрипт configure о том, что поддержка функции force-unwind имеется и это проверять не надо.

libc_cv_c_cleanup=yes
 

Аналогичным образом мы передаем параметр libc_cv_c_cleanup=yes в скрипт configure с тем, чтобы пропустить проверку и сконфигурировать поддержку функции C cleanup.

На этом этапе может появиться следующее предупреждение:

configure: WARNING:
*** These auxiliary programs are missing or
*** incompatible versions: msgfmt
*** some features will be disabled.
*** Check the INSTALL file for required versions.

Отсутствие программы msgfmt или ее несовместимость, как правило, не приводит к проблемам. Эта программа msgfmt является частью пакета Gettext, который будет взят из хост системы.

Откомпилируйте пакет:

make

Этот пакет поставляется с набором тестов, однако, сейчас его запустить нельзя, поскольку еще нет компилятора C++.

Замечание

Чтобы набор тестов выполнялся успешно, также требуется установить данные, определяющие локаль. В этих данных системе указывается, в каком формате системные утилиты будут воспринимать и выдавать значения дат, времени и валют. Если набор тестов в этой главе запускаться не будет (в соответствие с рекомендацией), то локали сейчас устанавливать необходимости нет. Соответствующие локали будут установлены в следующей главе. В любом случае для того, чтобы установить локаль для Glibc, используйте инструкции из раздела 6.9 "Пакет Glibc-2.13."

Установите пакет:

make install

Подробная информация о пакете находится в разделе 6.9.4 "Описание пакета Glibc".


Предыдущий раздел: Оглавление Следующий раздел:
Заголовки Linux-2.6.37 API   Настройка набора инструментальных средств



Комментарии