SPRAB89A September 2011 – March 2014
As described in Section 6.6, the procedure linkage table (PLT) is a collection of stubs that connect calls from one load module to an imported function in another module. The address of an imported function is not known at static link time, so the static linker instead generates a position-independent stub to call the function, and patches the original call to go through the stub. The stub is relocated at load time according to the dynamically linked address of the callee.
The PLT is part of the code segment. A PLT entry may use absolute or GOT-based addressing to address the callee, depending on whether position independence is required.