我的 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
。
归档时间: |
|
查看次数: |
1241 次 |
最近记录: |