SPRAB89A September 2011 – March 2014
For calls to imported or potentially imported functions, the compiler or linker generates a stub called a Procedure Linkage Table Entry as described in Section 6.6.
Calls that require patching through a PLT are marked by relocation types that meet all of following conditions:
In an executable, an additional condition applies:
A PLT entry in a shared object or position-independent executable must use position-independent (GOT-based) addressing to address the callee. In this case, PLT entries must follow the lazy binding convention as described in Section 15.7. That is, the first instruction of the PLT must load the byte offset of the R_C6000_JUMP_SLOT relocation entry that marks the callee's GOT entry into B0.
A PLT entry in a position-dependent executable may use absolute addressing. The C6000 does not adopt the convention common to other architectures in which a reference to a function's address can be statically resolved to the PLT entry. See Section 6.8.3.