GNU Binutils 2.36

Опубликовано August@Karro - пн, 01/25/2021 - 13:20
GNU Binary Utilities (binutils) — набор инструментального ПО для обращения с объектным кодом в объектных файлах различного формата.

Современные Binutils версии были изначально написаны программистами из Cygnus Solutions, используя библиотеку libbfd (Binary File Descriptor). Эти утилиты обычно используются в сочетании с GCC, make и отладчиком GNU.  Изначально пакет состоял только из небольших утилит, но позже в релизы были включены GNU Assembler (GAS) и GNU linker (GLD), так как их функциональные назначения достаточно сильно связаны. 

Обновления и заметки по новой версии программы:

  • При определения порядка связывания атрибутов в ELF-секциях добавлена возможность указания числовых индексов секций вместо символьных имён.
  • Добавлена директива ".nop" для генерации отельной инструкции no-op, которая не влияет на нумерацию строк в отладочных таблицах DWARF.
  • Прекращена поддержка опций "--reduce-memory-overheads" и "--hash-size", так как ассемблер теперь используют хэш-таблицы, которые могут расширяться или уменьшаться автоматически.
  • Для систем x86/x86_64 в ассемблер добавлена поддержка инструкций AVX VNNI, HRESET, UINTR, TDX, AMX и Key Locker, а также реализована возможность указания не абсолютных значений сегментов в инструкциях lcall и ljmp. В ассемблер для x86 добавлена поддержка префикса "{disp16}". При сборке в Linux на системах x86 по умолчанию включена опция "--enable-x86-used-note".
  • Для систем ARM/AArch64 в ассемблере реализована поддержка процессоров Cortex-A78, Cortex-A78AE, Cortex-X1, Cortex-R82, Neoverse V1 и Neoverse N2. Добавлена поддержка расширений Armv8-R и Armv8.7-A, системных регистров ETMv4 (Embedded Trace Macrocell), ETE (Embedded Trace Extension), TRBE (Trace Buffer Extension), CSRE (Call Stack Recorder Extension) и BRBE (Branch Record Buffer Extension), инструкций CSR PDEC, WFET и WFIT, флагов "+csre", "+flagm", "+pauth" и "+ls64" в "-march"
  • В компоновщик добавлена опция "--error-handling-script=<NAME>" (позволяет вызвать скрипт при обнаружении отсутствующей библиотеки или неопределённого символа), а также опции "-z x86-64-{baseline|v[234]}" и "-z unique-symbol". При создании DLL в формате PE задействованы настройки повышения безопасности. Обеспечена дедупликация типов в секциях ".ctf", для управления которой предложена опция "--ctf-share-types". По умолчанию для экономии места обеспечен пропуск секции "variable" в ".ctf".
  • В утилиту ar добавлена поддержка модификатора "l" для задания зависимостей для статической библиотеки.
  • В readelf появилась опция "--lto-syms" для отображения содержимого таблиц символов из секций LTO, а также опция "-C" для реконструкции оригинальных имён символов.

Большая часть утилит — довольно простые программы. Основные сложные части вынесены в общие библиотеки: libbfd и libopcodes. 

 

Последние материалы