%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 Документация 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-default-hash-style=gnu Значение новых параметров настройки: --enable-gold Собирает компоновщик gold и устанавливает его как ld.gold (вместе с компоновщиком по умолчанию). --enable-ld=default Собирает оригинальный компоновщик bfd и устанавливает его как ld (компоновщик по умолчанию) и как ld.bfd --enable-plugins Включает поддержку плагинов для компоновщика. --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 Чтобы получить список неудачных тестов, запустите: grep '^FAIL:' $(find -name '*.log') Двенадцать тестов завершаются неудачно в наборе тестов gold, когда GCC собирается с параметрами и . Установите пакет: make tooldir=/usr install Удалите бесполезные статические библиотеки: rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,gprofng,opcodes,sframe}.a Содержимое пакета Binutils Установленные программы Установленные библиотеки Созданные каталоги addr2line, ar, as, c++filt, dwp, elfedit, gprof, gprofng, ld, ld.bfd, ld.gold, nm, objcopy, objdump, ranlib, readelf, size, strings и strip libbfd.so, libctf.so, libctf-nobfd.so, libgprofng.so, libopcodes.so и libsframe.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 libgprofng Библиотека, содержащая большинство подпрограмм, используемых gprofng libgprofng libopcodes Библиотека для работы с опкодами—читаемыми версиями инструкций для процессора. Используется для сборки таких утилит как objdump libopcodes libsframe Библиотека для поддержки обратной онлайн-трассировки с использованием простого декодера разделов .sframe. libsframe