ABI artifactsΒΆ

An ABI artifact is a relevant part of the ABI of a shared library or program. Examples of ABI artifacts are exported types, variables, functions, or ELF symbols exported by a shared library.

The set of ABI artifacts for a binary is called an ABI Corpus.

Scalar types have a name, a size and other scalar properties.

An aggregate type is generally constituted of sub-types.

For instance, class or union types are a kind of aggregate type. They have a name, a size and members. Each member can be either

  • a data member with a type representing a sub-type of the aggregate type, an offset and a name

  • or a function with a type representing another sub-type of the aggregate type and a name. Some (virtual) member functions might have an offset as well.

Another example of aggregate type is a function type, which is the union of the return type and parameter types of the function.

Functions and variables are declarations that have a name and a type. They are both associated with an ELF symbol.