我正在为新架构构建交叉编译器,但是在编译如下所示的简单c代码时:
int sum(int a, int b);
int main()
{
int z=sum(2,3);
return 0;
}
int sum(int a, int b)
{
return a+b;
}
我收到以下汇编代码:
.text
.global _main
_main:
push fp
mov fp, sp
jmp 2
call ___main
limm r0, 3
push r0
limm r1, 2
push r1
call _sum
...
...
ret
.global _sum
_sum:
push fp
mov fp, sp
...
...
ret
当尝试汇编代码时,它会为调用___ main 引发错误的错误参数,但对于只有一个下划线的其他标签(如_sum),它可以正常工作。
现在,我的问题是:有什么方法可以更改汇编程序输出,以便输出调用_main (编译器文件中的任何宏或其他内容)?
我已经阅读了很多关于这个错误的信息,它说调用_main 和调用___ main 是C库设置的一部分,并且具有相同的地址(是真的),但是我的装配工并没有让它通过。
我正在使用GCC版本5.3.0进行交叉编译。