Details

Date Added: April 27, 2021

Revision: 1.5-FINAL

Download Link

Categories

Level One

  • Developer Resources

Level Two

  • OpenPOWER Documents

Level Three

  • Specifications

Keywords

None

This is the first public review draft of the 64-bit ELF V2 ABI Specification, a document created and maintained and approved by the System Software Workgroup for publication.

The ABI (application binary interface) specification provides the definitions for the machine interface and inter-object interfaces for the little-endian POWER architecture.

This specification defines the OpenPOWER ELF V2 ABI which is derived from and represents the first major update to the Power ABI since the original release of the IBM® RS/6000® ABI. It was developed to make extensive use of new functions available in OpenPOWER-compliant processors. It expects an OpenPOWER-compliant processor to implement at least Power ISA V2.07B with all OpenPOWER Architecture instruction categories as well as OpenPOWER-defined implementation characteristics for some implementation-specific features.

The Executable and Linking Format (ELF) defines a linking interface for executables and shared objects in two parts: the first part is the generic System V ABI, the second part is a processor-specific supplement.  This document, the OpenPOWER ABI for Linux Supplement for the Power Architecture 64-bit ELF V2 ABI, is the OpenPOWER-compliant processor-specific supplement for use with ELF V2 on 64-bit IBM Power Architecture® systems. This is not a complete System V ABI supplement because it does not define any library interfaces. This document establishes both big-endian and little-endian application binary interfaces. OpenPOWER-compliant processors in the 64-bit Power Architecture can execute in either big-endian or little-endian mode. Executables and executable-generated data (in general) that subscribes to either byte ordering is not portable to a system running in the other mode.

SUMMARY:

The Executable and Linking Format (ELF) defines a linking interface for executables and shared objects in two parts: the first part is the generic System V ABI, the second part is a processor-specific supplement.

This document, the OpenPOWER ABI for Linux Supplement for the Power Architecture 64-bit ELF V2 ABI, is the OpenPOWER-compliant processor-specific supplement for use with ELF V2 on 64-bit IBM Power Architecture® systems. This is not a complete System V ABI supplement because it does not define any library interfaces.

This document establishes both big-endian and little-endian application binary interfaces. OpenPOWER-compliant processors in the 64-bit Power Architecture can execute in either big-endian or little-endian mode. Executables and executable-generated data (in general) that subscribes to either byte ordering is not portable to a system running in the other mode.

ERRATA:

This document is an update to version 1.4 at this link https://openpowerfoundation.org/?resource_lib=64-bit-elf-v2-abi-specification-power-architecture and includes the following changes from Revision 1.4:

• Errata recorded at https://openpowerfoundation.org/?resource_lib=openpower-elfv2-errata-elfv2-abi-version-1-4  have been incorporated into this document.

• PowerISA version 3.1 introduces PC-relative instructions for accessing code and data. Thus compilers and assembly programmers that target version 3.1 or later can, if desired, avoid usage of a TOC pointer for such accesses. The ABI has been updated to describe the implications of this new capability.

• Appendix A, “Predefined Functions for Vector Programming,” and most of Chapter 6, “Vector Programming Interfaces,” have been removed from this document. This material is now incorpo-rated into the POWER Vector Intrinsics Programming Reference. See Section 1.1, “ReferenceDocumentation” [1] for a link to this document.

FEEDBACK:

This document is a Standards Track, Work Group work product owned by the System Software Workgroup and handled in compliance with the requirements outlined in the OpenPOWER Foundation Work Group (WG) Process document.
It was created using the Master Template Guide version 1.0. Comments, questions, etc. can be submitted to the public mailing list for this document at <[email protected]>