编译器对ABI的实现依赖性

时间:2017-06-10 10:30:47

标签: arm eabi

从这个问题What is Application binary Interface开始,ABI涵盖了诸如

之类的细节
  • 数据类型,大小和对齐方式;
  • 调用约定,它控制函数的使用方式'争论是 传递并返回检索的值;
  • 系统调用号码以及应用程序应如何制作系统 调用操作系统;
  • 堆叠帧(激活记录)[不在上述问题中]

我的问题是,

  1. 如果ABI定义了这些规则,则执行生成的编译器 目标架构的二进制文件取决于架构ABI ??? 例如,ARM的编译器必须遵循ARM eabi ???
  2. 谁设计这些ABI ???供应商,架构设计师(核心),编译器设计者???

1 个答案:

答案 0 :(得分:1)

编译器只是一个像图像处理程序的程序。您有输入和输出,在这两种情况下它们都必须符合某些标准(语言,文件格式)。但是你如何做到这一点取决于你。对于编译器情况,您只需要创建可在指令集定义的目标平台上运行的代码,以及您选择的理智编译器或创建适用于该语言的调用约定,但这取决于您。