RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
YandexMoney: 
41001198119846 
E-gold:
5128052

Linux From Scratch. Версия 6.0

Глава 6. Установка основных системных программ

6.13. Binutils-2.15.91.0.2

Binutils является колекцией средств разработки программ, содержащих компоновщик, ассемблер и другие средства для работы с объектными файлами.

Расчетное время сборки 1.4 SBU

Требуемое место на диске 167 MB

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

6.13.1. Инсталлируем Binutils

Этот пакет известен своим нестабильным поведением при компиляции с измененными опциями оптимизации (включая опции -march и -mcpu). Binutils рекомендуется компилировать с настройками по умолчанию. Если Вы задали переменные такие как CFLAGS или CXXFLAGS, изменяющие уровень оптимизации по умолчанию, рекомендуется убрать их при сборке пакета binutils.

Проверьте, что псевдотерминалы (PTY) работают корректно внутри среды chroot, выполнив простой тест:

expect -c "spawn ls"

Если Вы получили сообщение вида:

The system has no more ptys.
Ask your system administrator to create more.

то Ваша среда chroot не может оперировать PTY. В этом случае не стоит запускать тестирование для Binutils и GCC до того, как Вы это исправите. В документации по Binutils рекомендуется собирать Binutils вне каталога с исходниками, а в отдельном каталоге для сборки:

mkdir ../binutils-build
cd ../binutils-build

Подготавливаем Binutils для компиляции:


../binutils-2.15.91.0.2/configure --prefix=/usr --enable-shared

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

make tooldir=/usr

Обычно каталог со средствами (каталог, где располагаются исполняемые файлы) устанавливается в $(exec_prefix)/$(target_alias), где они и располагаются, например, /usr/i686-pc-linux-gnu. Когда мы собираем средства только для своей системы, достаточно установить все просто в каталог /usr. Такая установка нужна только в случае использования cross-компиляции (к примеру, компилируем пакет на машине Intel, но нужен код для работы на платформе PowerPC).

[Important]

Важно

Тестирование Binutils на этом этапе является критичным. Не пропускайте его.

Проверим результаты:

make check

Устанавливаем пакет:

make tooldir=/usr install

Установим заголовки libiberty, которые нужны для некоторых пакетов:


cp ../binutils-2.15.91.0.2/include/libiberty.h /usr/include

6.13.2. Описание Binutils

Проинсталлированные программы: addr2line, ar, as, c++filt, gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings и strip.

Проинсталлированные библиотеки: libiberty.a, libbfd.[a,so] и libopcodes.[a,so].

Короткое описание

addr2line

Транслирует адрес программы в имя файла и номер строки. Адрес и имя исполняемого файла используются с отладочной информацией бинарника для определения исходника и номера строки, ассоциированной с адресом.

ar

Создает, модифицирует и распаковывает из архива.

as

Ассемблер. Ассемблирует вывод gcc в объектные файлы.

c++filt

Используется компоновщиком для сортировки символов C++ и Java, для пропуска перезагрузки функций при конфликтах.

gprof

Отображает график системных вызовов.

ld

Компоновщик. Он соединяет несколько объектных и архивных файлов в один, переопределяет их данные и устанавливает символические ссылки.

nm

Выводит символы, содержащиеся в объектном файле.

objcopy

Используется для преобразования из одного типа объектного файла в другой.

objdump

Выводит информацию об объектном файле в соответствии с параметрами, определяющими, какую информацию выводить. Выводимая информация, как правило, используется програмистами, работающими со средствами компиляции.

ranlib

Генерирует список содержимого архива и сохраняет его в архиве. Список содержит все символы, определенные частями архива, которые являются объектными файлами.

readelf

Выводит информацию о типе бинарника.

size

Выводит список размеров частей и общий размер для каждого объектного файла.

strings

Выводит для каждого файла список печатных символов больше указанной длины (по умолчанию 4). Для объектных файлов печатаются только строки из инициализационного и загружаемого разделов. Для других типов файлов выводятся все строки.

strip

Удаляет символы из объектных файлов.

libiberty

Содержит правила, используемые различными программами GNU, включая getopt, obstack , strerror, strtol и strtoul .

libbfd

Библиотека двоичого дескриптора файла.

libopcodes

Библиотека для работы с опкодами — “читаемыми” версиями инструкций процессора, используется в сборке утилит вроде objdump.

Поиск

 

Найди своих коллег!