This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: PR ld/12253 DW_EH_PE_datarel
On Thu, Nov 25, 2010 at 05:35:01PM +0100, Rainer Orth wrote:
> Jakub Jelinek <jakub@redhat.com> writes:
>
> > On Wed, Nov 24, 2010 at 10:57:25AM +1030, Alan Modra wrote:
> >> architecture dependent, it is also context sensitive. When used in
> >> .eh_frame_hdr, DW_EH_PE_datarel means relative to the .eh_frame_hdr
> >> section.
> >
> > Yeah, I'm sorry for that, but it is documented that way and
>
> Is there any written/formal documention for that, other than binutils
> and gcc (gcc/unwind-fde-dw2-glibc.c) sources?
The comment in elf-eh-frame.c in binutils is the written documentation:
/* Write out .eh_frame_hdr section. This must be called after
_bfd_elf_write_section_eh_frame has been called on all input
.eh_frame sections.
.eh_frame_hdr format:
ubyte version (currently 1)
ubyte eh_frame_ptr_enc (DW_EH_PE_* encoding of pointer to start of
.eh_frame section)
ubyte fde_count_enc (DW_EH_PE_* encoding of total FDE count
number (or DW_EH_PE_omit if there is no
binary search table computed))
ubyte table_enc (DW_EH_PE_* encoding of binary search table,
or DW_EH_PE_omit if not present.
DW_EH_PE_datarel is using address of
.eh_frame_hdr section start as base)
[encoded] eh_frame_ptr (pointer to start of .eh_frame section)
optionally followed by:
[encoded] fde_count (total number of FDEs in .eh_frame section)
fde_count x [encoded] initial_loc, fde
(array of encoded pairs containing
FDE initial_location field and FDE address,
sorted by increasing initial_loc). */
Jakub