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

pts*_*pts 7 linux stack gcc

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

当我使用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