%general-entities; ]> binutils &binutils-version;
&binutils-url;
Binutils-&binutils-version; Binutils <para>Пакет содержит компоновщик, ассемблер, и другие утилиты и инструменты для работы с объектными файлам. Программы в этом пакете необходимы для компиляции как большинства пакетов системы LFS, так и многих пакетов за её пределами.</para> <segmentedlist> <segtitle>&buildtime;</segtitle> <segtitle>&diskspace;</segtitle> <seglistitem> <seg>&binutils-ch6-sbu;</seg> <seg>&binutils-ch6-du;</seg> </seglistitem> </segmentedlist> </sect2> <sect2 role="installation"> <title>Установка пакета Binutils Проверим, что псевдотерминалы (PTY) правильно работают в среде chroot. Для этого выполним простой тест: expect -c "spawn ls" Результатом выполнения команды, на экране должна появиться следующая строка: spawn ls Однако, если вместо вышеуказанного результата, появилось сообщение, как показано ниже, это означает что среда не правильно настроена для работы с псевдотерминалами. Эту проблему необходимо решить до запуска тестов пакета Binutils и GCC: The system has no more ptys. Ask your system administrator to create more. Теперь удалите один тест, который мешает запускать тесты. до завершения: sed -i '/@\tincremental_copy/d' gold/testsuite/Makefile.in В документации к пакету BinUtils рекомендуется выполнять компиляцию в отдельном каталоге: mkdir -v build cd build Подготовьте пакет Binutils к компиляции: ../configure --prefix=/usr \ --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 Выполнить сборку обычного bdf компоновщика и установить его как 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 The PC-relative offset и the debug_msg.sh могут не пройти в окружении LFS. Один тест, debug_msg.sh, как известно, не проходит Установите пакет: make tooldir=/usr install Содержимое пакета Binutils Установленные программы Установленные библиотеки Каталог установки addr2line, ar, as, c++filt, dwp, elfedit, gprof, ld, ld.bfd, ld.gold, nm, objcopy, objdump, ranlib, readelf, size, strings, and strip libbfd.{a,so} and libopcodes.{a,so} /usr/lib/ldscripts Краткое описание addr2line Переводит адреса программ на имена файлов и номера строк;            учитывая адрес и имя исполняемого файла, он использует отладочную            информацию в исполняемом файле, чтобы определить, какой исходный файл и строка            число связано с адресом addr2line ar создаёт и изменяет архивы, а также извлекает файлы из них ar as Ассемблер, известный как GAS (Gnu Assembler). Выполняет создание объектного файла из вывода команды gcc as c++filt Используется компоновщиком для удаления символов C ++ и Java и сохранения            перегруженных функции от конфликтов c++filt dwp утилита для упаковки DWARF dwp elfedit Обновляет ELF заголовок в файлах ELF elfedit gprof Отображает график вызовов данных профилирования gprof ld Компоновщик, который объединяет ряд объектных и архивных файлов в один файл, перемещая их данные и связывает ссылки ld ld.gold gold — это компоновщик для ELF файлов. Он стал официальным пакетом GNU и был добавлен в binutils в марте 2008 года и был впервые выпущен в составе binutils версии 2.19. Мотивацией для написания gold было создание компоновщика, который является более быстрым, чем GNU linker, особенно для больших приложений, написанных на C++. ld.gold ld.bfd Жесткая ссылка на ld ld.bfd nm Перечисляет символы, встречающиеся в данном объектном файле nm objcopy Копирование объектных файлов (возможно с изменениями) objcopy objdump Отображает информацию о данном объектном файле с возможностью            контроля необходимой информации для отображения; Эта информация            может быть полезна для программистов, которые работают над инструментами для компиляции objdump ranlib Создает индекс содержимого архива и сохраняет его            в архиве; индекс перечисляет все символы, определенные архивом, которые являются перемещаемыми объектными файлами ranlib readelf показ содержимого исполняемых файлов в формате ELF readelf size вывод общего размера и размера секций size strings Выводит для каждого заданного файла, последовательности печатаемых            символов, которые имеют, по меньшей мере, указанную длину (по умолчанию            4); для объектных файлов он печатает по умолчанию только строки из            разделов инициализации и загрузки, а для других типов файлов - сканирует весь файл strings strip Отбрасывает символы из объектных файлов strip libbfd Библиотека двоичных файловых дескрипторов (Binary File Descriptor) libbfd libopcodes libopcodes - библиотека для работы с опкодами, используется в сборке утилит вроде objdump. Опкоды - читаемые версии инструкций процессора. libopcodes