What is Procedure linkage table (PLT)?

A table of small stubs used to call shared-library functions. With lazy binding, the dynamic linker resolves the address on the first call and writes it into the GOT.

Field: Linkers, Loaders & Executables

Procedure linkage table (PLT) in the explanations

Questions that mention Procedure linkage table (PLT) (3)

  1. When dynamic linking uses lazy binding through the PLT (procedure linkage table), which statement is correct?
  2. Disassembling an object file shows that an instruction calling the external function printf has a placeholder target such as 0. When is the correct value filled in?
  3. When building a shared library, what is the advantage of exporting only the public functions and giving internal functions "hidden" symbol visibility?

Related terms

Dynamic linker Dynamic linking Object file Relocation Linker Shared library Application binary interface (ABI) Address space layout randomization (ASLR) BSS section Entry point

Back to the glossary