[patch 2/2] Add add_p_vaddr to dwfl_report_elf

Jan Kratochvil jan.kratochvil at redhat.com
Thu May 2 15:11:13 UTC 2013


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


More information about the elfutils-devel mailing list