标签: c linux gcc makefile stack
我有一个工具,我使用Makefile编译。它是一个非常大的工具,有很多Makefile。它在编译后生成一个共享库(.so文件)。当我使用execstack -q <file.so>进行检查时,它表明此库需要执行堆栈上的指令。
execstack -q <file.so>
要为任何程序启用堆栈执行,我们可以通过向-z execstack提供选项gcc来编译它。现在,我明确没有在任何地方提供此选项,但仍然为生成的共享库启用此标志。
-z execstack
gcc
我正在链接一些已启用此标志的库。这是为共享库启用此标志的原因吗?
如果不是,还有什么原因?