PLT
also: Procedure Linkage Table
The Procedure Linkage Table (PLT) is a section in executable files that enables dynamic linking by storing jump instructions to resolve function calls at runtime.
The PLT is part of the dynamic linking mechanism used by the ELF (Executable and Linkable Format) binary format on Linux. When a program calls an external function (like printf() from libc), the PLT provides a small stub that redirects execution to the correct function address, which is resolved by the dynamic linker.
The PLT works hand-in-hand with the Global Offset Table (GOT). The first time a function is called, the PLT stub jumps to the dynamic linker to resolve the actual address, which is then cached in the GOT. Subsequent calls jump directly to the resolved address, making the lookup fast.
For example, when your program calls printf(), execution goes to a PLT entry, which either redirects to the linker (first call) or directly to the cached function address (subsequent calls). This allows shared libraries to be loaded at different memory addresses on each run.