lazy binding
Finding a library function's address only the first time it is called, instead of when the program starts.
Lazy binding defers resolution of a PLT entry until its first call: the GOT entry starts by pointing at a resolver, which looks up the symbol, rewrites the GOT entry and jumps to the target; modern hardened builds (-z now, full RELRO) bind every entry at load time instead.