execstack标志的行为

问题描述

我正在使用gcc 7.5,但在https://gcc.gnu.org/onlinedocs/gcc-7.5.0/gcc/中找不到有关标志-z,noexecstack的信息 在哪里可以找到有关其行为的信息?即认情况下是否启用了它,如何检查它是否应用于我的文件等等。

我发现https://linux.die.net/man/8/execstack,上面写着标记是由最新的GCC版本自动完成的” ,因为7.5版于2019年11月发布,我假设这适用于gcc 7.5。 / p>

解决方法

来自link options

-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.