SPRAB89A September 2011 – March 2014
As described in Section 6.7, position independence for code and data is achieved through the Global Offset Table (GOT). The GOT is part of the data segment and is always addressed DP-relative using offsets that are fixed at static link time. The GOT consists of 4-byte slots that contain dynamically-assigned addresses. A Linux executable or shared object must have a GOT with at least two slots (8 bytes). GOT entries are marked with dynamic relocations that reference dynamic symbols. GOT entries are initialized by the static linker as follows:
The static linker must reserve the first two slots in the in the GOT for use by the lazy binder. See Section 15.7.