使用gcc编译时怎样去掉endbr32指令?
我给cflags添加了选项 -fcf-protection=none和-mmanual-endbr
因为我看了gcc手册,上面说这两个组合可以消除endbr32这个指令。
但是我使用前有两条endbr32指令,使用后只消除了一条。如图。
第一张图是添加选项前的汇编代码,第二张图是添加后的代码。
我的c程序很简单,如下。
int main(){
return 0;
}
这个程序什么都不做就返回了,我现在想消除编译产生的endbr32指令。
但是我只能消除一条,为什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
_trm_init
不是由你的代码生成的,是编译器已经生成好的代码直接链接进去的。所以不受你的编译选项的控制。