ABIs can also standardize details such as the [[name mangling#Name mangling in C++|C++ name mangling]],<ref>{{cite web|url=https://itanium-cxx-abi.github.io/cxx-abi/|title=Itanium C++ ABI}} (compatible with multiple architectures)</ref> [[exception handling|exception]] propagation,<ref>{{cite web|url=http://itanium-cxx-abi.github.io/cxx-abi/abi-eh.html|title=Itanium C++ ABI: Exception Handling}} (compatible with multiple architectures)</ref> and calling convention between compilers on the same platform, but do not require cross-platform compatibility.
== {{Anchor|EABI}}Embedded ABIsABI ==
An '''embedded-applicationbinary interfaceABI''' (EABI), used on an [[embedded operating system]], specifies standardaspects conventionssuch foras [[file format]]s, data types, register usage, [[stack frame]] organization, and function parameter passing of an [[Embedded system|embedded]] software program, for use with an [[embedded operating system]].
Each compiler and [[Compilerassembly language|assembler]]s that supportsupports thean EABI createcreates [[object code]] that is compatible with code generated by other such compilers,allowingand assemblers. This allows developers to link libraries generated withby one compiler with object code generated withby another compiler. Developers writing their own [[assembly language]] code may also interface with assembly generated by a compliant compiler.
EABIsTypically, arean designedEABI tois optimizeoptimized for performance withinfor the limited resources of anthe target embedded system. Therefore, EABIsan omitEABI mostmay omit abstractions thatbetween are[[User madespace betweenand kernel space|kernel and user codespace]] typically found in complex[[desktop computer|desktop]] operating systems. For example, [[dynamic linking]] may be avoided to allow smaller executables and faster loading, fixed register usage allows more compact stacks and kernel calls, and running the application in privileged mode allows direct access to custom hardware operation without the indirection of calling a device driver.<ref name="ppc-eabi">{{cite book
| title = PowerPC Embedded Application Binary Interface: 32-Bit Implementation