diff options
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 13 | ||||
-rw-r--r-- | bfd/elf-bfd.h | 4 | ||||
-rw-r--r-- | bfd/elf-eh-frame.c | 12 | ||||
-rw-r--r-- | bfd/elf32-m32c.c | 3 | ||||
-rw-r--r-- | bfd/elf32-msp430.c | 3 | ||||
-rw-r--r-- | bfd/elfxx-mips.c | 2 | ||||
-rw-r--r-- | bfd/elfxx-mips.h | 2 |
7 files changed, 27 insertions, 12 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 0f08ddd..376f201 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,18 @@ 2017-04-27 Alan Modra <amodra@gmail.com> + * elf-bfd.h (struct elf_backend_data): Make asection param of + elf_backend_eh_frame_address_size const. + (_bfd_elf_eh_frame_address_size): Likewise. + * elf32-m32c.c (_bfd_m32c_elf_eh_frame_address_size): Likewise. + * elf32-msp430.c (elf32_msp430_eh_frame_address_size): Likewise. + * elfxx-mips.c (_bfd_mips_elf_eh_frame_address_size): Likewise. + * elfxx-mips.h (_bfd_mips_elf_eh_frame_address_size): Likewise. + * elf-eh-frame.c (_bfd_elf_eh_frame_address_size): Likewise. + (next_cie_fde_offset): Constify params. + (offset_adjust, adjust_eh_frame_local_symbols): Likewise. + +2017-04-27 Alan Modra <amodra@gmail.com> + * elf-bfd.h (struct eh_cie_fde): Add aug_str_len and aug_data_len. (_bfd_elf_adjust_eh_frame_global_symbol): Declare. * elf-eh-frame.c (_bfd_elf_parse_eh_frame): Set aug_str_len and diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index bff6abc..79f87b2 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -1291,7 +1291,7 @@ struct elf_backend_data 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 *); + (bfd *, const asection *); /* These functions tell elf-eh-frame whether to attempt to turn absolute or lsda encodings into pc-relative ones. The default @@ -1987,7 +1987,7 @@ extern void bfd_elf_print_symbol (bfd *, void *, asymbol *, bfd_print_symbol_type); extern unsigned int _bfd_elf_eh_frame_address_size - (bfd *, asection *); + (bfd *, const 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); diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c index 1af6f30..52ba9c6 100644 --- a/bfd/elf-eh-frame.c +++ b/bfd/elf-eh-frame.c @@ -326,9 +326,9 @@ size_of_output_cie_fde (struct eh_cie_fde *entry) /* Return the offset of the FDE or CIE after ENT. */ static unsigned int -next_cie_fde_offset (struct eh_cie_fde *ent, - struct eh_cie_fde *last, - asection *sec) +next_cie_fde_offset (const struct eh_cie_fde *ent, + const struct eh_cie_fde *last, + const asection *sec) { while (++ent < last) { @@ -1334,7 +1334,7 @@ find_merged_cie (bfd *abfd, struct bfd_link_info *info, asection *sec, after .eh_frame editing. */ static bfd_signed_vma -offset_adjust (bfd_vma offset, asection *sec) +offset_adjust (bfd_vma offset, const asection *sec) { struct eh_frame_sec_info *sec_info = (struct eh_frame_sec_info *) elf_section_data (sec)->sec_info; @@ -1442,7 +1442,7 @@ _bfd_elf_adjust_eh_frame_global_symbol (struct elf_link_hash_entry *h, if any symbol was changed. */ static int -adjust_eh_frame_local_symbols (asection *sec, +adjust_eh_frame_local_symbols (const asection *sec, struct elf_reloc_cookie *cookie) { unsigned int shndx; @@ -2546,7 +2546,7 @@ _bfd_elf_write_section_eh_frame_hdr (bfd *abfd, struct bfd_link_info *info) /* Return the width of FDE addresses. This is the default implementation. */ unsigned int -_bfd_elf_eh_frame_address_size (bfd *abfd, asection *sec ATTRIBUTE_UNUSED) +_bfd_elf_eh_frame_address_size (bfd *abfd, const asection *sec ATTRIBUTE_UNUSED) { return elf_elfheader (abfd)->e_ident[EI_CLASS] == ELFCLASS64 ? 8 : 4; } diff --git a/bfd/elf32-m32c.c b/bfd/elf32-m32c.c index 1944465..0ee67b7 100644 --- a/bfd/elf32-m32c.c +++ b/bfd/elf32-m32c.c @@ -2107,7 +2107,8 @@ m32c_elf_relax_delete_bytes /* This is for versions of gcc prior to 4.3. */ static unsigned int -_bfd_m32c_elf_eh_frame_address_size (bfd *abfd, asection *sec ATTRIBUTE_UNUSED) +_bfd_m32c_elf_eh_frame_address_size (bfd *abfd, + const asection *sec ATTRIBUTE_UNUSED) { if ((elf_elfheader (abfd)->e_flags & EF_M32C_CPU_MASK) == EF_M32C_CPU_M16C) return 2; diff --git a/bfd/elf32-msp430.c b/bfd/elf32-msp430.c index 8755280..25bbdc8 100644 --- a/bfd/elf32-msp430.c +++ b/bfd/elf32-msp430.c @@ -2552,7 +2552,8 @@ uses_large_model (bfd *abfd) } static unsigned int -elf32_msp430_eh_frame_address_size (bfd *abfd, asection *sec ATTRIBUTE_UNUSED) +elf32_msp430_eh_frame_address_size (bfd *abfd, + const asection *sec ATTRIBUTE_UNUSED) { return uses_large_model (abfd) ? 4 : 2; } diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index 8f6faad..70c7f1c 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -7028,7 +7028,7 @@ _bfd_mips_elf_symbol_processing (bfd *abfd, asymbol *asym) did so. */ unsigned int -_bfd_mips_elf_eh_frame_address_size (bfd *abfd, asection *sec) +_bfd_mips_elf_eh_frame_address_size (bfd *abfd, const asection *sec) { if (elf_elfheader (abfd)->e_ident[EI_CLASS] == ELFCLASS64) return 8; diff --git a/bfd/elfxx-mips.h b/bfd/elfxx-mips.h index 45eb74f..44ad789 100644 --- a/bfd/elfxx-mips.h +++ b/bfd/elfxx-mips.h @@ -29,7 +29,7 @@ extern bfd_boolean _bfd_mips_elf_new_section_hook extern void _bfd_mips_elf_symbol_processing (bfd *, asymbol *); extern unsigned int _bfd_mips_elf_eh_frame_address_size - (bfd *, asection *); + (bfd *, const asection *); extern bfd_boolean _bfd_mips_elf_name_local_section_symbols (bfd *); extern bfd_boolean _bfd_mips_elf_section_processing |