使用gcc编译时怎样去掉endbr32指令?

我给cflags添加了选项 -fcf-protection=none和-mmanual-endbr
因为我看了gcc手册,上面说这两个组合可以消除endbr32这个指令。
但是我使用前有两条endbr32指令,使用后只消除了一条。如图。添加选项前
添加选项后
第一张图是添加选项前的汇编代码,第二张图是添加后的代码。
我的c程序很简单,如下。

int main(){

return 0;

}

这个程序什么都不做就返回了,我现在想消除编译产生的endbr32指令。
但是我只能消除一条,为什么?

回答:

_trm_init 不是由你的代码生成的,是编译器已经生成好的代码直接链接进去的。所以不受你的编译选项的控制。

以上是 使用gcc编译时怎样去掉endbr32指令? 的全部内容, 来源链接: utcz.com/p/194390.html

回到顶部