01.12.2021

Выпуск GNU Binutils 2.36

Представлен релиз набора системных утилит GNU Binutils 2.36, в состав которого входят такие программы, как GNU linker, GNU assembler, nm, objdump, strings, strip.

В новой версии:

  • При определения порядка связывания атрибутов в 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» для реконструкции оригинальных имён символов.

Источник.