Исправьте ошибку, которая не позволяет собирать пакет Glibc с помощью компилятора GCC-4.5.2:
patch -Np1 -i ../glibc-2.13-gcc_fix-1.patch
Документация по Glibc рекомендует собирать пакет Glibc в отдельном директории, предназначенном для сборки, а не в директории с исходными кодами:
mkdir -v ../glibc-buildcd ../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 будет сконфигурована для кросс-компиляции, выполняемой с использованием кросс-компоновщика и кросс-компилятора, расположенных в директории /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".