O que é a procedure linkage table?
A procedure linkage table, ou PLT, é um conjunto de pequenos stubs de código que substituem chamadas a funções em bibliotecas compartilhadas. A primeira chamada a uma função passa pelo seu stub da PLT, que aciona o linker dinâmico para resolver o endereço real e registrá-lo na GOT. Chamadas posteriores saltam direto para o endereço resolvido.
Por que isso importa
A PLT é o mecanismo por trás do lazy binding, adiando o custo de resolver um símbolo até que ele seja de fato chamado. Ela trabalha lado a lado com a global offset table para ligar chamadas externas de forma eficiente.
Guias relacionados
What Is the Global Offset Table?The global offset table is a per-module table of addresses that position-independent code reads to reach glob…
What Is Lazy Binding?Lazy binding defers resolving the address of an external function until the first time it is actually called,…
What Is a Dynamic Linker?A dynamic linker loads the shared libraries a program depends on at startup and binds its references to the f…