Releases: ARM-software/abi-aa
2024Q3
What's Changed
- [AAELF64][SYSVABI64] Move dynamic linking contents to sysvabi64 by @smithp35 in #228
- [SYSVABI64] Add Guarded Control Stack (GCS) Feature Bit by @smithp35 in #231
- Add Microchip Technology Inc. to registered vendors with prefix mchp by @ashearer-mchp in #238
- Fix "reloction" typo by @smeenai in #241
- Fix 'unit32' typo in addenda32.rst by @valdaarhun in #244
- Promote the SME(2) ABI status from Alpha to Beta by @rsandifo-arm in #243
- Define soft-float PCS for AArch64 by @ostannard in #232
- Clarify R__RELATIVE optimization wording by @smeenai in #242
- Fix aadwarf64 typo in readme by @billybednar in #248
- [aadwarf64] Add DWARF support for unwinding with FEAT_PAuth_LR enabled by @pratlucas in #245
- [PAuthABIELF64] Use .note.gnu.property section as ELF marking scheme. by @smithp35 in #240
- [AAELF64] Reserve dynamic tags used by memtagabielf64 and pauthabi64 by @smithp35 in #216
- [AAELF64][PAUTHABI64] Assign PAuthABI relocation codes. by @smithp35 in #227
- [CLIBABI32] Restore missing reference to EDOM. by @statham-arm in #251
- Fix the typo in Operation Definition for R_ARM_REL32 by @eymay in #261
- Document a new SME support routine to query the current value of VG. by @kmclaughlin-arm in #263
- [aapcs64] Clarify meaning of "it" when preserving z and p regs by @smithp35 in #267
- [PAUTHABIELF64] Remove alternative ELF marking scheme by @smithp35 in #250
- [pauthabielf64] Fix typo in relocation name by @smithp35 in #255
- [PAUTHABIELF64] Add R_AARCH64_AUTH_GOT_ADR_PREL_LO21 relocation by @smithp35 in #259
- [aapcs64] Round up to a multiple of 8, not just to 8 by @rjmccall in #270
- [AAELF64] Clarify how addends work in MOVZ, MOVK and ADRP. by @statham-arm in #271
- [AAPCS64] Use oxford comma in soft-float ABI by @ostannard in #277
- [NFC] address language suggestions across various documents by @stuij in #278
- [aaelf64][pauthabi64] Remove addend in GDAT relocation operation by @smithp35 in #272
- [aaelf64] Fix PAuthABI relocation details. by @smithp35 in #254
- [ATOMICSABI64]: Alpha Draft of Atomics ABI by @lukeg101 in #256
New Contributors
- @ashearer-mchp made their first contribution in #238
- @smeenai made their first contribution in #241
- @valdaarhun made their first contribution in #244
- @ostannard made their first contribution in #232
- @billybednar made their first contribution in #248
- @eymay made their first contribution in #261
- @kmclaughlin-arm made their first contribution in #263
- @rjmccall made their first contribution in #270
- @lukeg101 made their first contribution in #256
Full Changelog: 2023Q3...2024Q3
Specifications included in this release
ABI for the Arm 32-bit Architecture
- ABI for the Arm Architecture - Base Standard - pdf, html
- Procedure Call Standard for the Arm Architecture - pdf, html
- ELF for the Arm Architecture - pdf, html
- DWARF for the Arm Architecture - pdf, html
- Base Platform ABI for the Arm Architecture - pdf, html
- C++ ABI for the Arm Architecture - pdf, html
- Exception Handling ABI for the Arm Architecture - pdf, html
- Run-time ABI for the Arm Architecture - pdf, html
- C Library for the Arm Architecture - pdf, html
- Support for Debugging Overlaid Programs - pdf, html
- Addenda to, and Errata in, the ABI for the ARM Architecture - pdf, html
- ABI Advisory Note - SP 8-byte alignment - pdf, html
ABI for the Arm 64-bit Architecture
- Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
- ELF for the Arm 64-bit Architecture - pdf, html
- DWARF for the Arm 64-bit Architecture - pdf, html
- C++ ABI for the Arm 64-bit Architecture - pdf, html
- Vector Function ABI for the Arm 64-bit Architecture - pdf, html
- PAuth ABI Extension to ELF for the Arm 64-bit Architecture - pdf, html
- System V ABI for the Arm 64-bit Architecture - pdf, html
- Memtag Extension to ELF for the Arm 64-bit Architecture - pdf, html
- C/C++ Atomics Application Binary Interface Standard for the Arm 64-bit Architecture - pdf, html
Morello Extension
- Morello Extension to the Procedure Call Standard for the Arm 64-bit Architecture - pdf, [html](https://github.com/ARM-software/abi-aa/blob/a82eef0433556b30539c0d4463768d9feb8cfd0b/aapcs64-morell...
2023Q3
changes
- Add Dignus LLC to registered vendors
- [aaelf64] Expand STO_AARCH64_VARIANT_PCS documentation
- [aaelf64] Relax BTI PLT requirement
- [Semihosting] Specify SYS_TIME return value as unsigned
- [aapcs32][aapcs64] Update language mappings to include _BitInt(N)
the specifications included in this release
ABI for the Arm 32-bit Architecture
- ABI for the Arm Architecture - Base Standard - pdf, html
- Procedure Call Standard for the Arm Architecture - pdf, html
- ELF for the Arm Architecture - pdf, html
- DWARF for the Arm Architecture - pdf, html
- Base Platform ABI for the Arm Architecture - pdf, html
- C++ ABI for the Arm Architecture - pdf, html
- Exception Handling ABI for the Arm Architecture - pdf, html
- Run-time ABI for the Arm Architecture - pdf, html
- C Library for the Arm Architecture - pdf, html
- Support for Debugging Overlaid Programs - pdf, html
- Addenda to, and Errata in, the ABI for the ARM Architecture - pdf, html
- ABI Advisory Note - SP 8-byte alignment - pdf, html
ABI for the Arm 64-bit Architecture
- Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
- ELF for the Arm 64-bit Architecture - pdf, html
- DWARF for the Arm 64-bit Architecture - pdf, html
- C++ ABI for the Arm 64-bit Architecture - pdf, html
- Vector Function ABI for the Arm 64-bit Architecture - pdf, html
PAuth ABI Extension
Morello Extension
- Morello Extension to the Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
- Morello Extension to ELF for the Arm 64-bit Architecture - pdf, html
- Morello Extension to DWARF for the Arm 64-bit Architecture - pdf, html
Miscellaneous material
download bundle
PDFs of all the above specifications have also been bundled in this zip file.
2023Q1
Changes
- memtagabielf64
- Add the Alpha version of MemtagABI
- sysvabi64
- Define the processor specific interpretation for DT_PLTGOT
- aaelf64-morello
- Describe the purecap TLS implementation in the ELF appendix
- aapcs64-morello
- Rework varargs for Morello
the specifications included in this release
ABI for the Arm 32-bit Architecture
- ABI for the Arm Architecture - Base Standard - pdf, html
- Procedure Call Standard for the Arm Architecture - pdf, html
- ELF for the Arm Architecture - pdf, html
- DWARF for the Arm Architecture - pdf, html
- Base Platform ABI for the Arm Architecture - pdf, html
- C++ ABI for the Arm Architecture - pdf, html
- Exception Handling ABI for the Arm Architecture - pdf, html
- Run-time ABI for the Arm Architecture - pdf, html
- C Library for the Arm Architecture - pdf, html
- Support for Debugging Overlaid Programs - pdf, html
- Addenda to, and Errata in, the ABI for the ARM Architecture - pdf, html
- ABI Advisory Note - SP 8-byte alignment - pdf, html
ABI for the Arm 64-bit Architecture
- Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
- ELF for the Arm 64-bit Architecture - pdf, html
- DWARF for the Arm 64-bit Architecture - pdf, html
- C++ ABI for the Arm 64-bit Architecture - pdf, html
- Vector Function ABI for the Arm 64-bit Architecture - pdf, html
PAuth ABI Extension
Morello Extension
- Morello Extension to the Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
- Morello Extension to ELF for the Arm 64-bit Architecture - pdf, html
- Morello Extension to DWARF for the Arm 64-bit Architecture - pdf, html
Miscellaneous material
- System V ABI for the Arm 64-bit Architecture - pdf, html
- Memtag Extension to ELF for the Arm 64-bit Architecture - pdf, html
- Semihosting for AArch32 and AArch64 - pdf, html
download bundle
PDFs of all the above specifications have also been bundled in this zip file.
2022Q3
changes
-
aapcs64:
- Across the document, use “thread” rather than “process”.
- Add support for SME.
-
aadwarf64:
- Describe SME-related changes to VG.
-
aaelf64:
- Include the ABS64 and ABS32 relocations in Dynamic relocations.
- ADRP + LDR GOT relaxation symbol should not be absolute.
- Document new PT_AARCH64_MEMTAG_MTE segment.
-
aapcs64-morello:
- Rework varargs for Morello.
-
aaelf64-morello:
- Describe the purecap TLS implementation.
-
sysvabi64:
- Add chapter on Program Loading and Dynamic Linking.
-
ehabi32:
- PACBTI-M unwinding rule in case of nested functions.
-
not strictly part of the release but within this timeframe the legacy ABI documents previously hosted on developer.arm.com were added to the Git repo.
the specifications included in this release
ABI for the Arm 32-bit Architecture
- ABI for the Arm Architecture - Base Standard - pdf, html
- Procedure Call Standard for the Arm Architecture - pdf, html
- ELF for the Arm Architecture - pdf, html
- DWARF for the Arm Architecture - pdf, html
- Base Platform ABI for the Arm Architecture - pdf, html
- C++ ABI for the Arm Architecture - pdf, html
- Exception Handling ABI for the Arm Architecture - pdf, html
- Run-time ABI for the Arm Architecture - pdf, html
- C Library for the Arm Architecture - pdf, html
- Support for Debugging Overlaid Programs - pdf, html
- Addenda to, and Errata in, the ABI for the ARM Architecture - pdf, html
- ABI Advisory Note - SP 8-byte alignment - pdf, html
ABI for the Arm 64-bit Architecture
- Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
- ELF for the Arm 64-bit Architecture - pdf, html
- DWARF for the Arm 64-bit Architecture - pdf, html
- C++ ABI for the Arm 64-bit Architecture - pdf, html
- Vector Function ABI for the Arm 64-bit Architecture - pdf, html
- System V ABI for the Arm 64-bit Architecture - pdf, html
PAuth ABI Extension
Morello Extension
- Morello Extension to the Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
- Morello Extension to ELF for the Arm 64-bit Architecture - pdf, html
- Morello Extension to DWARF for the Arm 64-bit Architecture - pdf, html
Miscellaneous material
download bundle
PDFs of all the above specifications have also been bundled in this zip file.
other specifications
For other ABI specifications, please go to: https://developer.arm.com/architectures/system-architectures/software-standards/abi
2022Q1
changes
All the changes in this release are captured by the 2022Q1 milestones.
Substantive changes:
-
aapcs64-morello:
fix up rule C.8 on capabilities: #120 -
aaelf64:
soft-deprecate GNU_PROPERTY_AARCH64_FEATURE_1_PAC: #121 -
aadwarf64:
move Pointer Authentication out from BETA state: #127
document a limitation of the DW_CFA_AARCH64_negate_ra_state: #129
alpha-level support for Scalable Matrix Extension (SME)
A piece of work that didn't make it into the release but should get an honorable mention is the 'alpha-level support for SME' pull request: #123. This involves big changes to the aapcs64 document, and we would appreciate any kind of feedback on it.
the specifications included in this release
ABI for the Arm 32-bit Architecture
- ABI for the Arm Architecture - Base Standard - pdf, html
- Procedure Call Standard for the Arm Architecture - pdf, html
- ELF for the Arm Architecture - pdf, html
- DWARF for the Arm Architecture - pdf, html
- Base Platform ABI for the Arm Architecture - pdf, html
- C++ ABI for the Arm Architecture - pdf, html
- Exception Handling ABI for the Arm Architecture - pdf, html
- Run-time ABI for the Arm Architecture - pdf, html
- C Library for the Arm Architecture - pdf, html
- Support for Debugging Overlaid Programs - pdf, html
- Addenda to, and Errata in, the ABI for the ARM Architecture - pdf, html
- ABI Advisory Note - SP 8-byte alignment - pdf, html
ABI for the Arm 64-bit Architecture
- Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
- ELF for the Arm 64-bit Architecture - pdf, html
- DWARF for the Arm 64-bit Architecture - pdf, html
- C++ ABI for the Arm 64-bit Architecture - pdf, html
- Vector Function ABI for the Arm 64-bit Architecture - pdf, html
- System V ABI for the Arm 64-bit Architecture - pdf, html
PAuth ABI Extension
Morello Extension
- Morello Extension to the Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
- Morello Extension to ELF for the Arm 64-bit Architecture - pdf, html
- Morello Extension to DWARF for the Arm 64-bit Architecture - pdf, html
Miscellaneous material
download bundle
PDFs of all the above specifications have also been bundled in this zip file.
other specifications
For older versions of the ABI specifications from before they got hosted within this Github repository, please go to:
https://developer.arm.com/architectures/system-architectures/software-standards/abi
2021Q3
changes
documents added
The SYSV ABI document is currently in alpha status and as for now only contains information on addressing modes and code models. We wish to expand the SYSV ABI content in the future.
changes made to existing documents
-
aaelf64-morello:
add ELF markers to identify Morello purecap binaries: #101 -
aaelf64:
reserved relocation codes for pauthabielf64: #100 -
aapcs64:
Add support for Decimal-floating-point formats: #114 -
addenda32:
Add Armv9-A value to Tag_CPU_arch: #111 -
pauthabielf64:
clarify the concepts of a default and alternate pauth elf signing schemes: #105
the specifications included in this release
ABI for the Arm 32-bit Architecture
- ABI for the Arm Architecture - Base Standard - pdf, html
- Procedure Call Standard for the Arm Architecture - pdf, html
- ELF for the Arm Architecture - pdf, html
- DWARF for the Arm Architecture - pdf, html
- Base Platform ABI for the Arm Architecture - pdf, html
- C++ ABI for the Arm Architecture - pdf, html
- Exception Handling ABI for the Arm Architecture - pdf, html
- Run-time ABI for the Arm Architecture - pdf, html
- C Library for the Arm Architecture - pdf, html
- Support for Debugging Overlaid Programs - pdf, html
- Addenda to, and Errata in, the ABI for the ARM Architecture - pdf, html
- ABI Advisory Note - SP 8-byte alignment - pdf, html
ABI for the Arm 64-bit Architecture
- Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
- ELF for the Arm 64-bit Architecture - pdf, html
- DWARF for the Arm 64-bit Architecture - pdf, html
- C++ ABI for the Arm 64-bit Architecture - pdf, html
- Vector Function ABI for the Arm 64-bit Architecture - pdf, html
- System V ABI for the Arm 64-bit Architecture - pdf, html
PAuth ABI Extension
Morello Extension
- Morello Extension to the Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
- Morello Extension to ELF for the Arm 64-bit Architecture - pdf, html
- Morello Extension to DWARF for the Arm 64-bit Architecture - pdf, html
Miscellaneous material
download bundle
PDFs of all the above specifications have also been bundled as a zip file.
2021Q1
changes
This release marks the completion of importing all the ABI documents into this repository. Thanks to everybody that made this possible.
Furthermore the other major addition is specifications around PAC/BTI-M .
newly converted documents
- ABI Advisory Note (advnote132)
- Support for Debugging Overlaid Programs (dbgovl32)
- Application Binary Interface for the Arm Architecture introduction (bsabi32)
- Base Platform ABI for the Arm Architecture (bpabi32)
- C++ ABI for the Arm 64-bit Architecture (cppabi64)
changes to documents
- aapcs32: Clarify what it means for a VFP CPRC argument to be correctly aligned.
- addenda32: Add definitions for PACBTI-M related build attributes.
- ehabi: PACBTI-M unwinding information.
- aadwarf32:
- PACBTI-M unwinding information.
- Deleted duplicated TPIDRURO register number entry.
- aapcs64:
- Clarify rule C.4 of the parameter passing rules when there is an overaligned HFA.
- Minor formatting changes.
- aaelf64: Various typo fixes.
- clibabi32: BTI info
the specifications included in this release
ABI for the Arm 32-bit Architecture
- ABI for the Arm Architecture - Base Standard - pdf, html
- Procedure Call Standard for the Arm Architecture - pdf, html
- ELF for the Arm Architecture - pdf, html
- DWARF for the Arm Architecture - pdf, html
- Base Platform ABI for the Arm Architecture - pdf, html
- C++ ABI for the Arm Architecture - pdf, html
- Exception Handling ABI for the Arm Architecture - pdf, html
- Run-time ABI for the Arm Architecture - pdf, html
- C Library for the Arm Architecture - pdf, html
- Support for Debugging Overlaid Programs - pdf, html
- Addenda to, and Errata in, the ABI for the ARM Architecture - pdf, html
- ABI Advisory Note - SP 8-byte alignment - pdf, html
ABI for the Arm 64-bit Architecture
- Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
- ELF for the Arm 64-bit Architecture - pdf, html
- DWARF for the Arm 64-bit Architecture - pdf, html
- C++ ABI for the Arm 64-bit Architecture - pdf, html
- Vector Function ABI for the Arm 64-bit Architecture - pdf, html
PAuth ABI Extension
Miscellaneous material
download bundle
PDFs of all the above specifications have also been bundled in this zip file.
release 2020Q4
The biggest change in this release is the addition of 10 converted specifications:
- Procedure Call Standard for the Arm Architecture (aapcs32)
- ELF for the Arm Architecture (aaelf32)
- DWARF for the Arm Architecture (aadwarf32)
- C++ ABI for the Arm Architecture (cppabi32)
- Run-time ABI for the Arm Architecture (rtabi32)
- DWARF for the Arm 64-bit Architecture (aadwarf64)
- PAuth ABI Extension to ELF for the Arm 64-bit Architecture (pauthabielf64)
- Morello Extension to the Procedure Call Standard for the Arm 64-bit Architecture (aapcs64)
- Morello Extension to ELF for the Arm 64-bit Architecture (aaelf64)
- Morello Extension to DWARF for the Arm 64-bit Architecture (aadwarf64)
- Semihosting for AArch32 and AArch64 (semihosting)
In addition, both the 32-bit and 64-bit versions of the Dwarf ABI specs gained Thread ID register number assignments, and in the 64-bit version of the Dwarf ABI spec, the PC was added as a register.
the specifications included in this release
ABI for the Arm 32-bit Architecture
- Procedure Call Standard for the Arm Architecture - pdf, html
- ELF for the Arm Architecture - pdf, html
- DWARF for the Arm Architecture - pdf, html
- C++ ABI for the Arm Architecture - pdf, html
- Exception Handling ABI for the Arm Architecture - pdf, html
- Run-time ABI for the Arm Architecture - pdf, html
- C Library for the Arm Architecture - pdf, html
- Addenda to, and Errata in, the ABI for the ARM Architecture - pdf, html
ABI for the Arm 64-bit Architecture
- Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
- ELF for the Arm 64-bit Architecture - pdf, html
- DWARF for the Arm 64-bit Architecture - pdf, html
- Vector Function ABI for the Arm 64-bit Architecture - pdf, html
PAuth ABI Extension
Morello Extension
- Morello Extension to the Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
- Morello Extension to ELF for the Arm 64-bit Architecture - pdf, html
- Morello Extension to DWARF for the Arm 64-bit Architecture - pdf, html
Miscellaneous material
download bundle
PDFs of all the above specifications have also been bundled in this zip file.
other specifications
For the other ABI specifications, please go to: https://developer.arm.com/architectures/system-architectures/software-standards/abi
release 2020Q3
The biggest change in this release is the addition of 4 new documents:
- Exception Handling ABI for the Arm Architecture
- C Library for the Arm Architecture
- Addenda to, and Errata in, the ABI for the ARM Architecture
- ELF for the Arm 64-bit Architecture
Additionally, we've specified ABI handling for 8.7-A's new FPCR bits in the aapcs64 and we added a missing table entry for Tag_DSP_extension in the addenda32 document (as compared to the latest version up on developer.arm.com).
the documents included in this release
ABI for the Arm 32-bit Architecture:
- Exception Handling ABI for the Arm Architecture - pdf, html
- C Library for the Arm Architecture - pdf, html
- Addenda to, and Errata in, the ABI for the ARM Architecture - pdf, html
ABI for the Arm 64-bit Architecture:
- Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
- ELF for the Arm 64-bit Architecture - pdf, html
- Vector Function ABI for the Arm 64-bit Architecture - pdf, html
For other ABI documents, please go to: https://developer.arm.com/architectures/system-architectures/software-standards/abi
release 2020Q2
The following documents are included in this 2020Q2 release:
- Procedure Call Standard for the Arm® 64-bit Architecture (AArch64) - pdf, html
- Vector Function Application Binary Interface Specification for AArch64 - pdf, html
For other ABI documents, please go to: https://developer.arm.com/architectures/system-architectures/software-standards/abi