Выпуск 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=” (позволяет вызвать скрипт при обнаружении отсутствующей библиотеки или неопределённого символа), “-z x86-64-{baseline|v[234]}” и “-z unique-symbol”. При создании DLL в формате PE задействованы настройки повышения безопасности. Обеспечена дедупликация типов в секциях “.ctf”, для управления которой предложена опция “–ctf-share-types”. По умолчанию для экономии места обеспечен пропуск секции “variable” из “.ctf”.
  • В утилите ar добавлена поддержка модификатора “l” для задания зависимостей статической библиотеки.
  • В readelf появилась опция “–lto-syms” для отображения содержимого таблиц символов из секций LTO, а также опция “-C” для реконструкции оригинальных имён символов.
Release. Ссылка here.