On Wed, 01 May 2013 16:32:50 +0200, Mark Wielaard wrote:
"For ET_EXEC and ET_CORE files BASE and ADD_P_VADDR will be
ignored.
ADD_P_VADDR is only used for ET_DYN files. When ADD_P_VADDR is true the
module start address is calculated by taking the ELF phdr p_vaddr into
account (which might have been set when the shared library was
prelinked). When ADD_P_VADDR is false the module start address will be
equal to BASE for any relocatable ELF type."
While your paragraph is definitely better it is all too complicated.
What about:
ADD_P_VADDR BASE
ET_EXEC ignored ignored
ET_DYN false absolute address where to place the file
true start address relative to ELF's phdr p_vaddr
ET_REL ignored absolute address where to place the file
ET_CORE ignored ignored
ET_DYN ELF phdr p_vaddr address can be non-zero if the shared library has been
prelinked by tool prelink(8).
The reference to l_addr might be confusing since the comments in
link.h were wrong till very recently (when you fixed them).
True.
OK this way?
Thanks,
Jan