Какое значение имеет раздел «.note.ABI-tag» в ELF? - PullRequest
0 голосов
/ 18 ноября 2018

Я вижу раздел .note.ABI-tag, когда я objdump -h <binary> в файле ELF.

Согласно справочной странице ELF:

   .note.ABI-tag
             This section is used to declare the expected run-time ABI
             of the ELF image.  It may include the operating system name
             and its run-time versions.  This section is of type
             SHT_NOTE.  The only attribute used is SHF_ALLOC.
  1. Нужен ли этот раздел?
  2. Какими могут быть побочные эффекты при удалении этого раздела?
  3. Как удалить этот раздел (флаг gcc) из ELF?

1 Ответ

0 голосов
/ 15 января 2019

Может сломать исполняемый файл в некоторых системах. Предполагается предоставить информацию о том, с каким ядром оно совместимо, так что если ABI двоичного файла не совместим с ABI текущего ядра. Больше информации здесь https://refspecs.linuxfoundation.org/LSB_1.2.0/gLSB/noteabitag.html

Однако, если ваш двоичный файл не скомпилирован для конкретного ядра (не обязательно Linux, так как множество различных целей используют вывод ELF), это не имеет значения и может быть просто вырезано, если ваша цель - уменьшить размер исполняемого файла. Однако вы должны знать, что это уже игнорируется, если вы делаете objcopy из ELF в BIN.

...