Библиотека сайта rus-linux.net
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 | |
Как правило, инструментальный директорий (директорий, в котором, в конечном счете, будут расположены исполняемые файлы) будет определяться с помощью |
ВажноВ этом разделе выполнение набора тестов для 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 | Убирает ненужные компоненты из объектных файлов |
| Содержит подпрограммы, используемые в различных программах GNU, например, getopt, obstack, strerror, strtol и strtoul |
| Библиотека дескрипторов двоичных файлов (Binary File Descriptor) |
| Библиотека, позволяющая использовать коды операций - "удобочитаемые текстовые" варианты инструкций процессора; используется для сборки таких утилит, как objdump. |
Предыдущий раздел: | Оглавление | Следующий раздел: |
Назад | Пакет GMP-5.0.1 |