As from this Question What is Application binary Interface, ABIs cover details such as
- data type, size, and alignment;
- the calling convention, which controls how functions' arguments are passed and return values retrieved;
- the system call numbers and how an application should make system calls to the operating system;
- Stack frames (activation records) [not in the above question]
My questions are,
- If ABIs define these rule then does the compiler that generates binaries for the target architecture depends on Architecture ABIs??? for example the compiler of ARM has to follow ARM eabi???
- Who design these ABIs??? the vendor, architecture designer (core), compiler designers???