SPRAB89A September 2011 – March 2014
The ABI supports the following fundamental schemes for addressing static data: DP-relative, Absolute, GOT-indirect, and PC-relative. Which one is used in a given situation depends on a variety of factors, including the variable's declaration, the execution platform, whether the module is being built as an executable or shared library, visibility conventions, and so on. Since the compiler generates the addressing it must be aware of this context, usually via command-line options and/or visibility directives in the source code. Other sections of this ABI provide details on when each form of addressing applies; this section specifies how the addressing is performed.