Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux
Linux From Scratch (version 6.8)
Назад Глава 6. Установка программ базовой системы Вперед

6.12. Пакет Binutils-2.21

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

Приблизительное время сборки: 2,1 SBU

Требуемое дисковое пространство: 222 MB

6.12.1. Установка пакета Binutils

Проверьте, чтобы в среде chroot терминалы PTY работали должным образом; для этого выполните простой тест:

expect -c "spawn ls"

Вывод этой команды должен быть следующим:

spawn ls

Если, наоборот, в выводе присутствует информация, указанная ниже, то это означает, что среда окружения не настроена для правильной работы терминалов PTY. Эту проблему следует решить до запуска тестов для Binutils и GCC:

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

Запретите установку устаревшего файла standards.info, т.к. позже с помощью инструкций Autoconf будет установлен более новый файл:

rm -fv etc/standards.info
sed -i.bak '/^INFO/s/standards.info //' etc/Makefile.in

В документации по Binutils рекомендуется собирать пакет Binutils в отдельном директории, предназначенном для сборки, а не в директории с исходными кодами:

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

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

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

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

make tooldir=/usr

Пояснение параметра make:

tooldir=/usr
 

Как правило, инструментальный директорий (директорий, в котором, в конечном счете, будут расположены исполняемые файлы) будет определяться с помощью $(exec_prefix)/$(target_alias). Например, для машин с архитектурой x86_64 это будет /usr/x86_64-unknown-linux-gnu. Поскольку данная система является специализированной, в директории /usr можно не указывать директорий целевой системы. Значение $(exec_prefix)/$(target_alias) может использоваться при кросс-компиляции (например, компиляции пакета на машине Intel, создающей код, который может быть выполнен на компьютерах PowerPC).

Важно

В этом разделе выполнение набора тестов для Binutils считается важным. Не пропускайте его ни при каких обстоятельствах.

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

make check

Установите пакет:

make tooldir=/usr install

Установите заголовочный файл libiberty, необходимый для некоторых пакетов:

cp -v ../binutils-2.21/include/libiberty.h /usr/include

6.12.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}

Установленные директории: /usr/lib/ldscripts

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

addr2line

Переводит адреса, используемые в программе, в именах файлов и номера строк; выдает адрес и имя исполняемого файла , использует отладочную информацию, имеющуюся в исполняемом файле, для определения файла исходного кода и номера строки, ассоциированной с адресом

ar

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

as

Ассемблер, который собирает результаты работы компилятора gcc в виде объектных файлов

c++filt

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

gprof

Выдает в графическом виде информацию о профилировании

ld

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

nm

Выводит список символов, используемых в данном объектном файле

objcopy

Преобразовывает один тип объектного файла в другой

objdump

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

ranlib

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

readelf

Отображает информацию о двоичных модулях типа ELF

size

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

strings

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

strip

Убирает ненужные компоненты из объектных файлов

libiberty

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

libbfd

Библиотека дескрипторов двоичных файлов (Binary File Descriptor)

libopcodes

Библиотека, позволяющая использовать коды операций - "удобочитаемые текстовые" варианты инструкций процессора; используется для сборки таких утилит, как objdump.


Предыдущий раздел: Оглавление Следующий раздел:
Назад   Пакет GMP-5.0.1