我的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
的命令行标志。