%general-entities; ]> binutils &binutils-version;
&binutils-url;
Binutils-&binutils-version; Binutils <para>Пакет Binutils содержит компоновщик, ассемблер и другие инструменты для работы с объектными файлами.</para> <segmentedlist> <segtitle>&buildtime;</segtitle> <segtitle>&diskspace;</segtitle> <seglistitem> <seg>&binutils-fin-sbu;</seg> <seg>&binutils-fin-du;</seg> </seglistitem> </segmentedlist> </sect2> <sect2 role="installation"> <title>Установка пакета Binutils Убедитесь в правильной работе псевдотерминалов (PTY) в среде chroot, запустив простой тест: expect -c "spawn ls" Эта команда должна вывести следующее: spawn ls Если вместо этого выходные данные содержат приведенное ниже сообщение, значит, среда не настроена для правильной работы PTY. Эту проблему необходимо решить перед запуском тестов для Binutils и GCC: The system has no more ptys. Ask your system administrator to create more. Документация Binutils рекомендует выполнять компиляцию в отдельном каталоге: mkdir -v build cd build Подготовьте Binutils к компиляции: ../configure --prefix=/usr \ --sysconfdir=/etc \ --enable-gold \ --enable-ld=default \ --enable-plugins \ --enable-shared \ --disable-werror \ --enable-64-bit-bfd \ --with-system-zlib Значение параметров настройки: --enable-gold Собирает компоновщик gold и устанавливает его как ld.gold (вместе с компоновщиком по умолчанию). --enable-ld=default Собирает оригинальный компоновщик bfd и устанавливает его как ld (компоновщик по умолчанию) и как ld.bfd --enable-plugins Включает поддержку плагинов для компоновщика. --enable-64-bit-bfd Включает 64-разрядную поддержку (на хостах с ограниченным размерам слов). Может не понадобится в 64-разрядных системах, но вреда от этого не будет. --with-system-zlib Использовать установленную библиотеку zlib вместо сборки собственной. Скомпилируйте пакет: make tooldir=/usr Значение параметра make: tooldir=/usr Обычно для tooldir (каталога, в котором будут расположены исполняемые файлы) установлено значение $(exec_prefix)/$(target_alias). Например, машины x86_64 преобразуют это значение в /usr/x86_64-unknown-linux-gnu. Поскольку это пользовательская система, то целевой каталог в /usr не требуется. $(exec_prefix)/$(target_alias) будет использоваться, если система используется для кросс-компиляции (например, при компиляции пакета на компьютере Intel, который генерирует код, который может быть выполнен на компьютерах PowerPC). Набор тестов для Binutils в этом разделе считается критически важным. Ни в коем случае не пропускайте его. Выполните тестирование: make -k check Известно, что один тест gold, pr17704a_test, не проходит, если параметр CONFIG_IA32_EMULATION отключен в конфигурации ядра хост-системы. --> Установите пакет: make tooldir=/usr install Удалите ненужные статические библиотеки: rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes}.a Содержимое пакета Binutils Установленные программы Установленные библиотеки Установленный каталог addr2line, ar, as, c++filt, dwp, elfedit, gprof, ld, ld.bfd, ld.gold, nm, objcopy, objdump, ranlib, readelf, size, strings, и strip libbfd.so, libctf.so, libctf-nobfd.so, и libopcodes.so /usr/lib/ldscripts Краткое описание addr2line Переводит адреса программ в имена файлов и номера строк; учитывая адрес и имя исполняемого файла, использует отладочную информацию в исполняемом файле, для определения файла исходного кода и номера строки, ассоциированной с адресом addr2line ar Создаёт, изменяет и распаковывает архивы ar as Ассемблер, который собирает результат работы gcc в объектные файлы as c++filt Используется компоновщиком для исправления символов C++ и Java и предотвращения конфликтов перегруженных функций. c++filt dwp Утилита для упаковки DWARF dwp elfedit Обновляет ELF заголовок в ELF файлах elfedit gprof Отображает в графическом виде информацию о профилировании gprof gprofng Собирает и анализирует данные о производительности gprofng ld Компоновщик, который объединяет несколько объектных и архивных файлов в один файл, перемещая их данные и связывая символическими ссылками ld ld.gold Урезанная версия ld, которая поддерживает только формат объектных файлов elf ld.gold ld.bfd Жесткая ссылка на ld ld.bfd nm Выводит список символов, используемых в данном объектном файле nm objcopy Преобразует один тип объектного файла в другой objcopy objdump Отображает информацию о данном объектном файле; можно указать параметры, определяющие, какая конкретно информация будет отображаться. Отображаемая информация полезна для программистов, которые работают над инструментами, используемыми при компиляции objdump ranlib Создает индекс содержимого архива и сохраняет его в архиве; в индексе перечислены все символы, определенные в перемещаемых объектных файлах, содержащихся в архиве ranlib readelf тображает информацию о двоичных файлах типа ELF readelf size Отображает размеры секций и общий размер указанных объектных файлов size strings Выводит для каждого указанного файла последовательности печатаемых символов, которые имеют по крайней мере указанную длину (по умолчанию четыре); для объектных файлов по умолчанию печатаются только строки из секций инициализации и загрузки, в то время как для других файлов он сканирует весь файл. strings strip Удаляет символы из объектных файлов strip libbfd Библиотека дескрипторов двоичных файлов libbfd libctf Библиотека отладки формата Compat ANSI-C Type libctf libctf-nobfd Вариант libctf, не использующий функциональность libbfd. libctf-nobfd libopcodes Библиотека для работы с опкодами—читаемыми версиями инструкций для процессора. Используется для сборки таких утилит как objdump libopcodes