If an executable file contains a reference to a function defined in
one of its associated shared objects, the symbol table section for
that file shall contain an entry for that symbol. The
st_shndx
member of that
symbol table
entry contains SHN_UNDEF
.
This signals to 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 non-zero, the value shall contain the virtual
address of the first instruction of 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.