4.4.1. Symbol Values
If an executable file contains a reference to a function defined in
one of its associated shared objects, the symbol table section for the
file will contain an entry for that symbol. The st_shndx member of
that symbol table entry contains SHN_UNDEF. This informs the dynamic
linker that the symbol definition for that function is not contained
in the executable file itself. If that symbol has been allocated a
procedure linkage table entry in the executable file, and the st_value
member for that symbol table entry is nonzero, the value is the
virtual address of the function descriptor provided by that procedure
linkage table entry. Otherwise, the st_value member contains zero.
This procedure linkage table entry address is used by the dynamic
linker in resolving references to the address of the function. See Section 5.2.3 for details.