Revision history   OpenPOWER Library

 Chapter 1. Introduction

The purpose of the OpenPOWER ELFv2 Application Binary Interface (ABI) Compliance Test Harness and Test Suite (TH/TS) Specification is to provide the test suite requirements to be able to demonstrate OpenPOWER ELFv2 ABI compliance. It contains the following:

  • Section describing the test harness needed to execute the test suite

  • Section describing the tests required to be in the test suite

  • Section describing the successful execution of the test suite, including what it means for an optional feature to fail

This version of this document is applicable to POWER8, POWER9, and POWER10 systems.

The input to this specification is the following specification which describes the application binary interface for OpenPOWER systems:

64-bit ELF V2 ABI Specification, Version 1.5

The ABI specification defines aspects of the platform that are required to enable interoperability of binary object files. The ABI specification document is organized into the following chapters:

1. Introduction

2. Low-level System Information

3. Object Files

4. Program Loading and Dynamic Linking

5. Libraries

6. Vector Programming Interfaces

Chapter 1 (Introduction) does not specify any interoperability requirements. Chapter 6 (Vector Programming Interfaces) is beyond the scope of this compliance specification. The rest of this compliance specification describes how to demonstrate compliance with chapters 2-5 of the ABI specification document.

While any binary application running on an OpenPOWER system must comply with the ABI aspects primarily documented in chapter 2 (Low-Level System Information) of the ELFv2 ABI specification in order to ensure interoperability, it is not possible to validate ABI compliance at the level of a single application. Instead, validation occurs at the level of the compiler used to build the application. This document therefore specifies conformance tests that a compiler used to build binary applications intended to run on OpenPOWER systems must adhere to.

Specifically, those conformance tests take the form of interoperability tests that validate that the binaries generated by the compiler under test are compatible with those generated by the OpenPOWER reference compiler. That reference compiler is the GNU Compiler Collection version 10. This document only specifies interoperability tests for compilers implementing the C or C++ programming languages.

Similarly, the validation of the ABI aspects documented primarily in chapter 3 (Object Files) occurs at the level of the binary tool chain (assembler, linker, and related tools) used to build application binary files and operate on such files. This documents specifies properties of those tools that need to be verified to demonstrate compliance with the ELFv2 ABI.

ABI aspects documented primarily in chapter 4 (Program Loading and Dynamic Linking) are implemented by the operating environment (kernel, dynamic loader, application start-up code). This document specifies properties of the operating environment that need to be verified to demonstrate compliance with the ELFv2 ABI.

Finally, chapter 5 (Libraries) documents ABI aspects primarily implemented by system libraries provided with the operating system. This document specifies properties of the system libraries that need to be verified to demonstrate compliance with the ELFv2 ABI.