如何防止gcc生成PT_GNU_STACK程序头?

时间:2017-01-27 19:44:25

标签: linux gcc stack

我的gcc 4.8总是在Linux上的ELF可执行文件中生成PT_GNU_STACK程序头。

当我使用gcc -S时,在.s文件(程序集文件)中,gcc会生成一行.section .note.GNU-stack,"",@progbits。如果没有这一行,PT_GNU_STACK程序头将从ELF可执行文件中消失。

是否可以为gcc指定命令行标志,以便它不会生成PT_GNU_STACK程序标题?

(我不在乎堆栈是否可执行,任何一种解决方案都适合我。)

看起来不可能阻止gcc 4.8发出.section .note.GNU-stack,"",@progbits,因为这是file_end_indicate_exec_stack中定义的gcc/varasm.c中的硬编码。但也许还有另一种解决方案,例如ld的命令行标志。

0 个答案:

没有答案