binutils
Этот пакет содержит компоновщик, ассемблер и другие утилиты для работы с объектными файлами.
- Версия: 2.43
- Домашняя страница: 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.