diff options
author | Alan Modra <amodra@gmail.com> | 2004-10-10 07:58:07 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2004-10-10 07:58:07 +0000 |
commit | fda3ecf23f406d43dd2990a86ff16a2b0359471c (patch) | |
tree | 6a89ab2fe3119ab8eee1d47bfd6ff3344691ddc8 /bfd/elf-bfd.h | |
parent | 35f0d9373b87e2de55f69e33a641f56d7435c839 (diff) | |
download | gdb-fda3ecf23f406d43dd2990a86ff16a2b0359471c.zip gdb-fda3ecf23f406d43dd2990a86ff16a2b0359471c.tar.gz gdb-fda3ecf23f406d43dd2990a86ff16a2b0359471c.tar.bz2 |
* elf-bfd.h (struct eh_cie_fde): Add cie_inf, remove sec.
(struct eh_frame_hdr_info): Add last_cie_inf, remove last_cie_offset.
* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Delete code
setting offsets for removed CIEs. Don't set "sec", instead set
cie_inf for FDEs. Keep a pointer to last struct eh_cie_fde for a
CIE in hdr_info. Only set make_relative and make_lsda_relative
for CIEs. Use pointers rather than array indices.
(_bfd_elf_eh_frame_section_offset): Test/set make_relative,
make_lsda_relative, need_* on cie_inf for FDEs.
(_bfd_elf_write_section_eh_frame): Adjust offset and new_offset for
section output_offset. Delete cie_offset, instead use cie_inf
pointer to CIE entry. Use need_relative and need_lsda_relative on
CIE entry for FDEs. Use pointers rather than array indices.
Diffstat (limited to 'bfd/elf-bfd.h')
-rw-r--r-- | bfd/elf-bfd.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index bfee05d..f9b1b4a 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -286,9 +286,10 @@ struct cie struct eh_cie_fde { - unsigned int offset; + /* For FDEs, this points to the CIE used. */ + struct eh_cie_fde *cie_inf; unsigned int size; - asection *sec; + unsigned int offset; unsigned int new_offset; unsigned char fde_encoding; unsigned char lsda_encoding; @@ -319,8 +320,8 @@ struct eh_frame_hdr_info { struct cie last_cie; asection *last_cie_sec; + struct eh_cie_fde *last_cie_inf; asection *hdr_sec; - unsigned int last_cie_offset; unsigned int fde_count, array_count; struct eh_frame_array_ent *array; /* TRUE if .eh_frame_hdr should contain the sorted search table. |