Библиотека сайта rus-linux.net
Ошибка базы данных: Table 'a111530_forumnew.rlf1_users' doesn't exist
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 будет сконфигурована для кросс-компиляции, выполняемой с использованием кросс-компоновщика и кросс-компилятора, расположенных в директории |
|
--disable-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 | Настройка набора инструментальных средств |