Установка Binutils-2.14

Ожидаемое время сборки: 1.4 SBU
Ожидаемое место на диске: 167 MB

Описание Binutils

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

Binutils зависит от: Bash, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.

Установка Binutils

Сейчас необходимо проверить правильность работы 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
cd ../binutils-build

Теперь подготовим Binutils к компиляции:

../binutils-2.14/configure \
--prefix=/usr --enable-shared

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

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