Разрешение на запись. Секция занимает память во время выполнения процесса. Некоторые служебные секции не загружаются в память при загрузке объектного файла, для таких секций данный флаг отключается. Секция содержит исполняемые машинные инструкции. Данные в секции могут быть объединены для устранения дублирования. Если флаг SHF_STRINGS не установлен, элементы данных в секции имеют одинаковый размер. Размер одного элемента указывается в поле sh_entsize. Если флаг SHF_STRINGS установлен, секция состоит из массивов символов с завершающим нулём и размер одного символа указывается в поле sh_entsize. Каждый элемент в секции сравнивается с другими элементами в секциях с тем же именем, типом и флагами. Элементы, которые будут иметь одинаковые значения во время выполнения программы, могут быть объединены. Перемещения, ссылающиеся на элементы таких секций, должны быть разрешены соответствующим образом. Перед объединением все элементы секции должны быть проанализированы для определения того, будут ли значения фактически идентичными во время выполнения. Подобное объединение не является обязательным требованием для соответствия ABI. Секция состоит из массивов символов с завершающим нулём. Размер одного символа указывается в поле sh_entsize. Поле sh_info данного заголовка секции содержит индекс элемента таблицы заголовков секций. Особые требования по расположению. Требования применяются, если поле sh_link этого заголовка секции ссылается на другую секцию (связанная секция). Если поле sh_link связанной секции не содержит 0, в выходном файле текущая секция должна располагаться в том же порядке относительно связанной секции, что и связанная секция относительно секции, с которой она связана. Секция требует специальной, зависящей от операционной системы, обработки для предотвращения некорректного поведения. Секция - элемент (возможно, единственный) группы секций Секция содержит Thread-Local Storage, каждый поток будет иметь собственную копию данной секции. Секция содержит сжатые данные. Данный флаг применяется только к секциям, память под которые не выделяется при загрузке объектного файла в память. Флаг не используется в комбинации с SHF_ALLOC. Данный флаг также неприменим к секциям, имеющим тип SHT_NOBITS. Все перемещения, относящиеся к сжатой секции, ссылаются на её данные в несжатом состоянии. Поэтому для разрешения перемещений необходимо декомпрессирование секции. Каждая сжатая секция задает алгоритм её сжатия самостоятельно. Допустимо, чтобы разные секции в объектном файле ELF применяли различные алгоритмы сжатия. Сжатые секции начинаются с заголовка, идентифицирующего алгоритм сжатия. Поля заголовка сжатой секции Размер Название Назначение ELF 32 ELF 64 4 4 ch_type Алгоритм сжатия. Название Значение Описание ELFCOMPRESS_ZLIB 1 Данные в секции сжаты с использованием алгоритма Zlib. Сжатые данные следуют сразу после заголовка и до конца секции. ELFCOMPRESS_LOOS - ELFCOMPRESS_HIOS 1610612736 - 1879048191 Зависимые от операционной системы значения. ELFCOMPRESS_LOPROC - ELFCOMPRESS_HIPROC 1879048192 - 2147483647 Зависимые от процессора значения. 4 ch_reserved Зарезервировано для будущего использования. 4 8 ch_size Размер в байтах декомпрессированной секции. 4 8 ch_addralign Необходимое для декомпрессированной секции выравнивание. Название Название ch_type Описание Данные в секции сжаты с использованием алгоритма Zlib. Сжатые данные следуют сразу после заголовка и до конца секции. Зависимые от операционной системы значения. Зависимые от процессора значения. ch_reserved ch_size ch_addralign Все биты, включенные в это поле, определяют зависящие от операционной системы значения Все биты, включенные в это поле, определяют зависящие от процессора значения 