diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2005-01-31 20:39:11 +0000 |
---|---|---|
committer | Richard Sandiford <rdsandiford@googlemail.com> | 2005-01-31 20:39:11 +0000 |
commit | 8c946ed5d5af555d95f39630fcb56bfc6b0ce93b (patch) | |
tree | 65cab0a41c020d51a982aef8b506199ec171ea51 /bfd/elf-bfd.h | |
parent | 89fac5e3c33745a93c9b90538048505d46ca365c (diff) | |
download | gdb-8c946ed5d5af555d95f39630fcb56bfc6b0ce93b.zip gdb-8c946ed5d5af555d95f39630fcb56bfc6b0ce93b.tar.gz gdb-8c946ed5d5af555d95f39630fcb56bfc6b0ce93b.tar.bz2 |
* elf-bfd.h (elf_backend_data): Add elf_backend_eh_frame_address_size.
(_bfd_elf_eh_frame_address_size): Declare.
* elfxx-target.h (elf_backend_eh_frame_address_size): Define a default.
(elfNN_bed): Initialize elf_backend_eh_frame_address_size.
* elfxx-mips.h (_bfd_mips_elf_eh_frame_address_size): Declare.
(elf_backend_eh_frame_address_size): Define.
* elfxx-mips.c (_bfd_mips_elf_eh_frame_address_size): New function.
* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Get the address
size from the new backend hook.
(_bfd_elf_write_section_eh_frame): Likewise.
(_bfd_elf_eh_frame_address_size): New function.
Diffstat (limited to 'bfd/elf-bfd.h')
-rw-r--r-- | bfd/elf-bfd.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index 6645c9a..f2a063b 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -906,6 +906,12 @@ struct elf_backend_data bfd_boolean (*elf_backend_ignore_discarded_relocs) (asection *); + /* This function returns the width of FDE pointers in bytes, or 0 if + that can't be determined for some reason. The default definition + goes by the bfd's EI_CLASS. */ + unsigned int (*elf_backend_eh_frame_address_size) + (bfd *, asection *); + /* These functions tell elf-eh-frame whether to attempt to turn absolute or lsda encodings into pc-relative ones. The default definition enables these transformations. */ @@ -1381,6 +1387,8 @@ extern void _bfd_elf_sprintf_vma extern void _bfd_elf_fprintf_vma (bfd *, void *, bfd_vma); +extern unsigned int _bfd_elf_eh_frame_address_size + (bfd *, asection *); extern bfd_byte _bfd_elf_encode_eh_address (bfd *abfd, struct bfd_link_info *info, asection *osec, bfd_vma offset, asection *loc_sec, bfd_vma loc_offset, bfd_vma *encoded); |