binutils
Этот пакет содержит компоновщик, ассемблер и другие утилиты для работы с объектными файлами.
- Версия: 2.42
- Домашняя страница: https://www.gnu.org/software/binutils
- Время сборки: 1 ОВС
Настройка
Сборка пакета binutils
должна происходить в отдельном каталоге. Создайте его:
mkdir -v build
cd build
Запустите скрипт configure
для генерации предназначенных для сборки файлов Makefile
:
../configure --prefix=$LFA/tools \
--target=$LFA_TGT \
--with-sysroot=$LFA_CROSS \
--disable-nls \
--enable-gprofng=no \
--disable-werror \
--disable-multilib
Значения новых параметров:
--prefix=$LFA/tools
— указывает скриптуconfigure
подготовиться к установке пакета в директорию$LFA/tools
.
--target=$LFA_TGT
— создаёт кросс-архитектурный исполняемый файл, который запускается на x86_64-системе, но создаёт файлы для$LFA_TGT
-архитектуры.
--with-sysroot=$LFA_CROSS
— сообщаетconfigure
, что$LFA_CROSS
будет корнем кросс-компилятора.
--disable-nls
— отключает сборку пакета с поддержкой интернационализации и локализации. В кросс-компиляторе это не нужно.
--enable-gprofng=no
— отключает сборкуgprofng
, который не нужен в кросс-компиляторе.
--disable-werror
— отключает остановку сборку при возникновении предупреждений.
--disable-multilib
— отключает сборку multilib.
Сборка
make configure-host
make
Значения новых параметров:
make configure-host
— проверяет окружение хоста и убеждается, что все необходимые инструменты доступны для компиляцииbinutils
.
Установка
make install
Содержимое пакета
- Установленные программы:
addr2line
,ar
,as
,c+filt
,elfedit
,gprof
,ld
,nm
,objcopy
,objdump
,ranlib
,readelf
,size
,strings
,strip
. - Установленные библиотеки:
libibery.a
,libbbfd.{a,so}
,libopcodes.{a,so}
Описание компонентов
- Программы:
addr2line
— транслирует адреса программ в имена файлов и номера строк. Если задан адрес и имя исполняемого файла, он использует отладочную информацию в нём, чтобы определить, какой исходный файл или номер строки связаны с этим адресом.ar
— создаёт, изменяет и распаковывает ar-архивы.as
— GNU-ассемблер, который используется, в частности, вgcc
.c++filt
— используется компоновщиком для "распутывания" символов C++ и Java и предотвращения столкновения перегруженных функций.elfedit
— получает и изменяет метаданные ELF-файлов.gprof
— отображение данных профиля графика вызовов.ld
— компоновщик, который объединяет несколько объектных и архивных файлов в один файл, перемещая их данные и связывая символьные ссылки.nm
— перечисляет символы, встречающиеся в данном объектном файле.objcopy
— копирует содержимое одного объектного файла в другой.objdump
— отображает информацию о данном объектном файле.ranlib
— генерирует индекс содержимого архива и сохраняет его в архиве.readelf
— отображает информацию об ELF-файле.size
- перечисляет размеры секций ELF-файла и размер для заданных файлов объектов.strings
— выводит для каждого заданного файла последовательности печатаемых символов, длина которых не меньше указанной (по умолчанию - четыре); для объектных файлов по умолчанию выводятся только строки из секций инициализации и загрузки, а для других типов файлов сканируется весь файл.strip
— удаляет символы из объектных файлов.
- Библиотеки:
libiberty
— содержит функции, используемые различными программами GNU, включаяgetopt
,obstack
,strerror
,strtoul
.libbfd
— библиотека дескрипторов двоичных файлов.libopcodes
— библиотека для работы с опкодами - "читабельными текстовыми" версиями инструкций для процессора. Используется, например, вobjdump
.