Ожидаемое время сборки: 1.4 SBU
|
Binutils является набором средств разработки, содержащим компоновщик, ассемблер и другие средства для работы с объектными файлами и архивами.
Устанавливаемые программы: addr2line, ar, as, c++filt, gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings и strip
Устанавливаемые библиотеки: libiberty.a, libbfd.[a,so] and libopcodes.[a,so]
Binutils зависит от: Bash, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.
Сейчас необходимо проверить правильность работы pseudo терминалов (PTY) в среде chroot. Мы проверим что все в порядке простым тестом:
expect -c "spawn ls"
|
Если вы получили сообщение вида:
The system has no more ptys. Ask your system administrator to create more.
Ваша среда chroot не может оперировать PTY. В этом случае вам не стоит запускать тестирование для Binutils и GCC до того, как вы исправите это. Пожалуйста. вернитесь к части Монтирование файловых систем proc и devpts и части Создание устройств (Makedev-1.7) и выполните необходимые действия по устранению проблемы.
Замечание: Тестирование Binutils здесь является критичным. Ни в коем случае не пропускайте его.
Этот пакет известен своим нестабильным поведением при компиляции с измененными опциями оптимизации (включая опции -march и -mcpu). Binutils рекомендуется компилировать с настройками по умолчанию. Следовательно, если вы задали переменные такие как CFLAGS или CXXFLAGS, изменяющие уровень оптимизации по умолчанию, рекомендуется убрать их при сборке пакета Binutils. Изменяя оптимизации для binutils, вы действуете на свой страх и риск.
Документация по Binutils рекомендует собирать Binutils вне директориии с исходниками в отдельной директории для сборки:
mkdir ../binutils-build
|
Теперь подготовим Binutils к компиляции:
../binutils-2.14/configure \
|
Скомпилируем пакет:
make tooldir=/usr
|
Обычно директория со средствами (директория, где располагаются исполняемые файлы) устанавливается в $(exec_prefix)/$(target_alias), куда они и располагаются, например, /usr/i686-pc-linux-gnu. Когда мы собираем средства только для своей системы, мы не нуждаемся в этом, нам достаточно установить все просто в директорию /usr. Такая установка нужна только в случае использования cross-компиляции (к примеру, компилируем пакет на машине Intel, но нам нужен код для работы на платформе PowerPC).
Проверим результаты:
make check
|
Тестирование, описаное в части Установка Binutils-2.14 - Шаг 2 Главы 5 является весьма уместным здесь. Убедитесь, что все впорядке перед продолжением установки.
Установим пакет:
make tooldir=/usr install
|
Установим заголовки libiberty, которые нужны для некоторых пакетов:
cp ../binutils-2.14/include/libiberty.h /usr/include
|