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 the Section called Function Addresses in the chapter called Program Loading and Dynamic Linking for details.