Base Address
Dynamic objects have a base address, which is the lowest virtual address associated with the memory image of the program's object file. One use of the base address is to relocate the memory image of the program during dynamic linking.
The base address of a dynamic object is calculated during execution from three values: the memory load address, the maximum page size, and the lowest virtual address of a program's loadable segment. The virtual addresses in the program headers might not represent the actual virtual addresses of the program's memory image. See Program Loading (Processor-Specific).
To compute the base address, you determine the memory address that are
associated with the lowest p_vaddr
value for a
PT_LOAD
segment. You then obtain the base address by
truncating the memory address to the nearest multiple of the maximum page size.
Depending on the kind of file being loaded into memory, the memory address might not
match the p_vaddr
values.