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).
Важно
Тестирование 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.
|
|