Поведение флага execstack

#gcc #stack #flags

#gcc #стек #флаги

Вопрос:

Я работаю с gcc 7.5 и не могу найти информацию о флаге -z, noexecstack в https://gcc.gnu.org/onlinedocs/gcc-7.5.0/gcc / Где я могу найти информацию о его поведении?, т.Е. Включено ли оно по умолчанию, как проверить, что оно применяется к моим файлам и так далее.

Я нашел https://linux.die.net/man/8/execstack и там написано «Маркировка выполняется автоматически последними версиями GCC», поскольку версия 7.5 была выпущена в ноябре 2019 года, я предполагаю, что это применимо к gcc 7.5.

Ответ №1:

Из параметров ссылки:

-ключевое слово z

-z передается непосредственно компоновщику вместе с ключевым словом keyword. Допустимые значения и их значения см. В разделе документации вашего компоновщика.

От man ld:

 -z keyword
    The recognized keywords are:
    [...]
    execstack 
    Marks the object as requiring executable stack.
    [...]
    noexecstack 
    Marks the object as not requiring executable stack.