diff options
-rw-r--r-- | bfd/ChangeLog | 8 | ||||
-rw-r--r-- | bfd/elf32-sh.c | 345 | ||||
-rw-r--r-- | bfd/elf32-sh64-com.c | 33 | ||||
-rw-r--r-- | bfd/elf32-sh64.c | 126 | ||||
-rw-r--r-- | bfd/elf32-sh64.h | 19 | ||||
-rw-r--r-- | bfd/elf64-sh64.c | 284 |
6 files changed, 318 insertions, 497 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index f48f731..5fe2b33 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,11 @@ +2003-07-25 Kaz Kojima <kkojima@rr.iij4u.or.jp> + + * elf32-sh.c: Convert to C90. Replace PTR with void *. + * elf32-sh64-com.c: Likewise. + * elf32-sh64.c: Likewise. + * elf32-sh64.h: Likewise. + * elf64-sh64.c: Likewise. + 2003-07-24 Kaz Kojima <kkojima@rr.iij4u.or.jp> * elf32-sh.c (sh_elf_adjust_dynamic_symbol): Use SYMBOL_CALLS_LOCAL. diff --git a/bfd/elf32-sh.c b/bfd/elf32-sh.c index f147c3f..39fb14c 100644 --- a/bfd/elf32-sh.c +++ b/bfd/elf32-sh.c @@ -27,90 +27,88 @@ #include "elf/sh.h" static bfd_reloc_status_type sh_elf_reloc - PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); + (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); static bfd_reloc_status_type sh_elf_ignore_reloc - PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); + (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); static reloc_howto_type *sh_elf_reloc_type_lookup - PARAMS ((bfd *, bfd_reloc_code_real_type)); + (bfd *, bfd_reloc_code_real_type); static void sh_elf_info_to_howto - PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); + (bfd *, arelent *, Elf_Internal_Rela *); static bfd_boolean sh_elf_set_private_flags - PARAMS ((bfd *, flagword)); + (bfd *, flagword); static bfd_boolean sh_elf_copy_private_data - PARAMS ((bfd *, bfd *)); + (bfd *, bfd *); static bfd_boolean sh_elf_merge_private_data - PARAMS ((bfd *, bfd *)); + (bfd *, bfd *); static bfd_boolean sh_elf_set_mach_from_flags - PARAMS ((bfd *)); + (bfd *); static bfd_boolean sh_elf_relax_section - PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *)); + (bfd *, asection *, struct bfd_link_info *, bfd_boolean *); static bfd_boolean sh_elf_relax_delete_bytes - PARAMS ((bfd *, asection *, bfd_vma, int)); + (bfd *, asection *, bfd_vma, int); static bfd_boolean sh_elf_align_loads - PARAMS ((bfd *, asection *, Elf_Internal_Rela *, bfd_byte *, bfd_boolean *)); + (bfd *, asection *, Elf_Internal_Rela *, bfd_byte *, bfd_boolean *); static bfd_boolean sh_elf_swap_insns - PARAMS ((bfd *, asection *, PTR, bfd_byte *, bfd_vma)); + (bfd *, asection *, void *, bfd_byte *, bfd_vma); static bfd_boolean sh_elf_relocate_section - PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, - Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); + (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, + Elf_Internal_Rela *, Elf_Internal_Sym *, asection **); static bfd_byte *sh_elf_get_relocated_section_contents - PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, - bfd_byte *, bfd_boolean, asymbol **)); + (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *, + bfd_boolean, asymbol **); static void sh_elf_copy_indirect_symbol - PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, - struct elf_link_hash_entry *)); + (struct elf_backend_data *, struct elf_link_hash_entry *, + struct elf_link_hash_entry *); static int sh_elf_optimized_tls_reloc - PARAMS ((struct bfd_link_info *, int, int)); + (struct bfd_link_info *, int, int); static bfd_boolean sh_elf_mkobject - PARAMS ((bfd *)); + (bfd *); static bfd_boolean sh_elf_object_p - PARAMS ((bfd *)); + (bfd *); static bfd_boolean sh_elf_check_relocs - PARAMS ((bfd *, struct bfd_link_info *, asection *, - const Elf_Internal_Rela *)); + (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *); static struct bfd_hash_entry *sh_elf_link_hash_newfunc - PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); + (struct bfd_hash_entry *, struct bfd_hash_table *, const char *); static struct bfd_link_hash_table *sh_elf_link_hash_table_create - PARAMS ((bfd *)); + (bfd *); static bfd_boolean sh_elf_adjust_dynamic_symbol - PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); + (struct bfd_link_info *, struct elf_link_hash_entry *); static bfd_boolean sh_elf_size_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); static bfd_boolean sh_elf_finish_dynamic_symbol - PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, - Elf_Internal_Sym *)); + (bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, + Elf_Internal_Sym *); static bfd_boolean sh_elf_finish_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); static bfd_reloc_status_type sh_elf_reloc_loop - PARAMS ((int, bfd *, asection *, bfd_byte *, bfd_vma, asection *, - bfd_vma, bfd_vma)); + (int, bfd *, asection *, bfd_byte *, bfd_vma, asection *, bfd_vma, + bfd_vma); static bfd_boolean create_got_section - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); static bfd_boolean sh_elf_create_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); static bfd_vma dtpoff_base - PARAMS ((struct bfd_link_info *)); + (struct bfd_link_info *); static bfd_vma tpoff - PARAMS ((struct bfd_link_info *, bfd_vma)); + (struct bfd_link_info *, bfd_vma); static asection * sh_elf_gc_mark_hook - PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, - struct elf_link_hash_entry *, Elf_Internal_Sym *)); + (asection *, struct bfd_link_info *, Elf_Internal_Rela *, + struct elf_link_hash_entry *, Elf_Internal_Sym *); static bfd_boolean sh_elf_gc_sweep_hook - PARAMS ((bfd *, struct bfd_link_info *, asection *, - const Elf_Internal_Rela *)); + (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *); static bfd_boolean allocate_dynrelocs - PARAMS ((struct elf_link_hash_entry *, PTR)); + (struct elf_link_hash_entry *, void *); static bfd_boolean readonly_dynrelocs - PARAMS ((struct elf_link_hash_entry *, PTR)); + (struct elf_link_hash_entry *, void *); static enum elf_reloc_type_class sh_elf_reloc_type_class - PARAMS ((const Elf_Internal_Rela *)); + (const Elf_Internal_Rela *); #ifdef INCLUDE_SHMEDIA -inline static void movi_shori_putval PARAMS ((bfd *, unsigned long, char *)); +inline static void movi_shori_putval (bfd *, unsigned long, char *); #endif static bfd_boolean elf32_shlin_grok_prstatus - PARAMS ((bfd *abfd, Elf_Internal_Note *note)); + (bfd *abfd, Elf_Internal_Note *note); static bfd_boolean elf32_shlin_grok_psinfo - PARAMS ((bfd *abfd, Elf_Internal_Note *note)); + (bfd *abfd, Elf_Internal_Note *note); /* The name of the dynamic interpreter. This is put in the .interp section. */ @@ -1664,15 +1662,10 @@ static reloc_howto_type sh_elf_howto_table[] = }; static bfd_reloc_status_type -sh_elf_reloc_loop (r_type, input_bfd, input_section, contents, addr, - symbol_section, start, end) - int r_type ATTRIBUTE_UNUSED; - bfd *input_bfd; - asection *input_section; - bfd_byte *contents; - bfd_vma addr; - asection *symbol_section; - bfd_vma start, end; +sh_elf_reloc_loop (int r_type ATTRIBUTE_UNUSED, bfd *input_bfd, + asection *input_section, bfd_byte *contents, + bfd_vma addr, asection *symbol_section, + bfd_vma start, bfd_vma end) { static bfd_vma last_addr; static asection *last_symbol_section; @@ -1774,15 +1767,9 @@ sh_elf_reloc_loop (r_type, input_bfd, input_section, contents, addr, function, and is almost certainly incorrect for other ELF targets. */ static bfd_reloc_status_type -sh_elf_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd, - error_message) - bfd *abfd; - arelent *reloc_entry; - asymbol *symbol_in; - PTR data; - asection *input_section; - bfd *output_bfd; - char **error_message ATTRIBUTE_UNUSED; +sh_elf_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol_in, + void *data, asection *input_section, bfd *output_bfd, + char **error_message ATTRIBUTE_UNUSED) { unsigned long insn; bfd_vma sym_value; @@ -1849,15 +1836,11 @@ sh_elf_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd, which the linker should otherwise ignore. */ static bfd_reloc_status_type -sh_elf_ignore_reloc (abfd, reloc_entry, symbol, data, input_section, - output_bfd, error_message) - bfd *abfd ATTRIBUTE_UNUSED; - arelent *reloc_entry; - asymbol *symbol ATTRIBUTE_UNUSED; - PTR data ATTRIBUTE_UNUSED; - asection *input_section; - bfd *output_bfd; - char **error_message ATTRIBUTE_UNUSED; +sh_elf_ignore_reloc (bfd *abfd ATTRIBUTE_UNUSED, arelent *reloc_entry, + asymbol *symbol ATTRIBUTE_UNUSED, + void *data ATTRIBUTE_UNUSED, asection *input_section, + bfd *output_bfd, + char **error_message ATTRIBUTE_UNUSED) { if (output_bfd != NULL) reloc_entry->address += input_section->output_offset; @@ -1971,9 +1954,8 @@ static const struct elf_reloc_map sh_reloc_map[] = corresponding SH ELf reloc. */ static reloc_howto_type * -sh_elf_reloc_type_lookup (abfd, code) - bfd *abfd ATTRIBUTE_UNUSED; - bfd_reloc_code_real_type code; +sh_elf_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, + bfd_reloc_code_real_type code) { unsigned int i; @@ -1989,10 +1971,8 @@ sh_elf_reloc_type_lookup (abfd, code) /* Given an ELF reloc, fill in the howto field of a relent. */ static void -sh_elf_info_to_howto (abfd, cache_ptr, dst) - bfd *abfd ATTRIBUTE_UNUSED; - arelent *cache_ptr; - Elf_Internal_Rela *dst; +sh_elf_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr, + Elf_Internal_Rela *dst) { unsigned int r; @@ -2019,11 +1999,8 @@ sh_elf_info_to_howto (abfd, cache_ptr, dst) they come from enum elf_sh_reloc_type in include/elf/sh.h. */ static bfd_boolean -sh_elf_relax_section (abfd, sec, link_info, again) - bfd *abfd; - asection *sec; - struct bfd_link_info *link_info; - bfd_boolean *again; +sh_elf_relax_section (bfd *abfd, asection *sec, + struct bfd_link_info *link_info, bfd_boolean *again) { Elf_Internal_Shdr *symtab_hdr; Elf_Internal_Rela *internal_relocs; @@ -2055,7 +2032,7 @@ sh_elf_relax_section (abfd, sec, link_info, again) symtab_hdr = &elf_tdata (abfd)->symtab_hdr; internal_relocs = (_bfd_elf_link_read_relocs - (abfd, sec, (PTR) NULL, (Elf_Internal_Rela *) NULL, + (abfd, sec, NULL, (Elf_Internal_Rela *) NULL, link_info->keep_memory)); if (internal_relocs == NULL) goto error_return; @@ -2411,11 +2388,8 @@ sh_elf_relax_section (abfd, sec, link_info, again) in coff-sh.c. */ static bfd_boolean -sh_elf_relax_delete_bytes (abfd, sec, addr, count) - bfd *abfd; - asection *sec; - bfd_vma addr; - int count; +sh_elf_relax_delete_bytes (bfd *abfd, asection *sec, bfd_vma addr, + int count) { Elf_Internal_Shdr *symtab_hdr; unsigned int sec_shndx; @@ -2737,8 +2711,7 @@ sh_elf_relax_delete_bytes (abfd, sec, addr, count) FALSE, we should free them, if we are permitted to, when we leave sh_coff_relax_section. */ internal_relocs = (_bfd_elf_link_read_relocs - (abfd, o, (PTR) NULL, (Elf_Internal_Rela *) NULL, - TRUE)); + (abfd, o, NULL, (Elf_Internal_Rela *) NULL, TRUE)); if (internal_relocs == NULL) return FALSE; @@ -2892,12 +2865,10 @@ sh_elf_relax_delete_bytes (abfd, sec, addr, count) boundaries. This is like sh_align_loads in coff-sh.c. */ static bfd_boolean -sh_elf_align_loads (abfd, sec, internal_relocs, contents, pswapped) - bfd *abfd ATTRIBUTE_UNUSED; - asection *sec; - Elf_Internal_Rela *internal_relocs; - bfd_byte *contents ATTRIBUTE_UNUSED; - bfd_boolean *pswapped; +sh_elf_align_loads (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, + Elf_Internal_Rela *internal_relocs, + bfd_byte *contents ATTRIBUTE_UNUSED, + bfd_boolean *pswapped) { Elf_Internal_Rela *irel, *irelend; bfd_vma *labels = NULL; @@ -2948,7 +2919,7 @@ sh_elf_align_loads (abfd, sec, internal_relocs, contents, pswapped) stop = sec->_cooked_size; if (! _bfd_sh_align_load_span (abfd, sec, contents, sh_elf_swap_insns, - (PTR) internal_relocs, &label, + internal_relocs, &label, label_end, start, stop, pswapped)) goto error_return; } @@ -2966,12 +2937,8 @@ sh_elf_align_loads (abfd, sec, internal_relocs, contents, pswapped) /* Swap two SH instructions. This is like sh_swap_insns in coff-sh.c. */ static bfd_boolean -sh_elf_swap_insns (abfd, sec, relocs, contents, addr) - bfd *abfd; - asection *sec; - PTR relocs; - bfd_byte *contents; - bfd_vma addr; +sh_elf_swap_insns (bfd *abfd, asection *sec, void *relocs, + bfd_byte *contents, bfd_vma addr) { Elf_Internal_Rela *internal_relocs = (Elf_Internal_Rela *) relocs; unsigned short i1, i2; @@ -3252,10 +3219,7 @@ static const bfd_byte *elf_sh_pic_plt_entry; #define elf_sh_plt_reloc_offset(info) (info->shared ? 52 : 44) inline static void -movi_shori_putval (output_bfd, value, addr) - bfd *output_bfd; - unsigned long value; - char *addr; +movi_shori_putval (bfd *output_bfd, unsigned long value, char *addr) { bfd_put_32 (output_bfd, bfd_get_32 (output_bfd, addr) @@ -3573,8 +3537,7 @@ struct sh_elf_obj_tdata as the specific tdata. */ static bfd_boolean -sh_elf_mkobject (abfd) - bfd *abfd; +sh_elf_mkobject (bfd *abfd) { bfd_size_type amt = sizeof (struct sh_elf_obj_tdata); abfd->tdata.any = bfd_zalloc (abfd, amt); @@ -3614,7 +3577,7 @@ struct elf_sh_link_hash_table #define sh_elf_link_hash_traverse(table, func, info) \ (elf_link_hash_traverse \ (&(table)->root, \ - (bfd_boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \ + (bfd_boolean (*) (struct elf_link_hash_entry *, void *)) (func), \ (info))) /* Get the sh ELF linker hash table from a link_info structure. */ @@ -3625,10 +3588,9 @@ struct elf_sh_link_hash_table /* Create an entry in an sh ELF linker hash table. */ static struct bfd_hash_entry * -sh_elf_link_hash_newfunc (entry, table, string) - struct bfd_hash_entry *entry; - struct bfd_hash_table *table; - const char *string; +sh_elf_link_hash_newfunc (struct bfd_hash_entry *entry, + struct bfd_hash_table *table, + const char *string) { struct elf_sh_link_hash_entry *ret = (struct elf_sh_link_hash_entry *) entry; @@ -3662,8 +3624,7 @@ sh_elf_link_hash_newfunc (entry, table, string) /* Create an sh ELF linker hash table. */ static struct bfd_link_hash_table * -sh_elf_link_hash_table_create (abfd) - bfd *abfd; +sh_elf_link_hash_table_create (bfd *abfd) { struct elf_sh_link_hash_table *ret; bfd_size_type amt = sizeof (struct elf_sh_link_hash_table); @@ -3696,9 +3657,7 @@ sh_elf_link_hash_table_create (abfd) shortcuts to them in our hash table. */ static bfd_boolean -create_got_section (dynobj, info) - bfd *dynobj; - struct bfd_link_info *info; +create_got_section (bfd *dynobj, struct bfd_link_info *info) { struct elf_sh_link_hash_table *htab; @@ -3728,9 +3687,7 @@ create_got_section (dynobj, info) /* Create dynamic sections when linking against a dynamic object. */ static bfd_boolean -sh_elf_create_dynamic_sections (abfd, info) - bfd *abfd; - struct bfd_link_info *info; +sh_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info) { struct elf_sh_link_hash_table *htab; flagword flags, pltflags; @@ -3885,9 +3842,8 @@ sh_elf_create_dynamic_sections (abfd, info) understand. */ static bfd_boolean -sh_elf_adjust_dynamic_symbol (info, h) - struct bfd_link_info *info; - struct elf_link_hash_entry *h; +sh_elf_adjust_dynamic_symbol (struct bfd_link_info *info, + struct elf_link_hash_entry *h) { struct elf_sh_link_hash_table *htab; struct elf_sh_link_hash_entry *eh; @@ -4054,9 +4010,7 @@ sh_elf_adjust_dynamic_symbol (info, h) dynamic relocs. */ static bfd_boolean -allocate_dynrelocs (h, inf) - struct elf_link_hash_entry *h; - PTR inf; +allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf) { struct bfd_link_info *info; struct elf_sh_link_hash_table *htab; @@ -4289,9 +4243,7 @@ allocate_dynrelocs (h, inf) /* Find any dynamic relocs that apply to read-only sections. */ static bfd_boolean -readonly_dynrelocs (h, inf) - struct elf_link_hash_entry *h; - PTR inf; +readonly_dynrelocs (struct elf_link_hash_entry *h, void *inf) { struct elf_sh_link_hash_entry *eh; struct elf_sh_dyn_relocs *p; @@ -4320,9 +4272,8 @@ readonly_dynrelocs (h, inf) /* Set the sizes of the dynamic sections. */ static bfd_boolean -sh_elf_size_dynamic_sections (output_bfd, info) - bfd *output_bfd ATTRIBUTE_UNUSED; - struct bfd_link_info *info; +sh_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, + struct bfd_link_info *info) { struct elf_sh_link_hash_table *htab; bfd *dynobj; @@ -4431,7 +4382,7 @@ sh_elf_size_dynamic_sections (output_bfd, info) /* Allocate global sym .plt and .got entries, and space for global sym dynamic relocs. */ - elf_link_hash_traverse (&htab->root, allocate_dynrelocs, (PTR) info); + elf_link_hash_traverse (&htab->root, allocate_dynrelocs, info); /* We now have determined the sizes of the various dynamic sections. Allocate memory for them. */ @@ -4525,8 +4476,7 @@ sh_elf_size_dynamic_sections (output_bfd, info) /* If any dynamic relocs apply to a read-only section, then we need a DT_TEXTREL entry. */ if ((info->flags & DF_TEXTREL) == 0) - elf_link_hash_traverse (&htab->root, readonly_dynrelocs, - (PTR) info); + elf_link_hash_traverse (&htab->root, readonly_dynrelocs, info); if ((info->flags & DF_TEXTREL) != 0) { @@ -4543,16 +4493,11 @@ sh_elf_size_dynamic_sections (output_bfd, info) /* Relocate an SH ELF section. */ static bfd_boolean -sh_elf_relocate_section (output_bfd, info, input_bfd, input_section, - contents, relocs, local_syms, local_sections) - bfd *output_bfd; - struct bfd_link_info *info; - bfd *input_bfd; - asection *input_section; - bfd_byte *contents; - Elf_Internal_Rela *relocs; - Elf_Internal_Sym *local_syms; - asection **local_sections; +sh_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info, + bfd *input_bfd, asection *input_section, + bfd_byte *contents, Elf_Internal_Rela *relocs, + Elf_Internal_Sym *local_syms, + asection **local_sections) { struct elf_sh_link_hash_table *htab; Elf_Internal_Shdr *symtab_hdr; @@ -5710,14 +5655,12 @@ sh_elf_relocate_section (output_bfd, info, input_bfd, input_section, which uses sh_elf_relocate_section. */ static bfd_byte * -sh_elf_get_relocated_section_contents (output_bfd, link_info, link_order, - data, relocatable, symbols) - bfd *output_bfd; - struct bfd_link_info *link_info; - struct bfd_link_order *link_order; - bfd_byte *data; - bfd_boolean relocatable; - asymbol **symbols; +sh_elf_get_relocated_section_contents (bfd *output_bfd, + struct bfd_link_info *link_info, + struct bfd_link_order *link_order, + bfd_byte *data, + bfd_boolean relocatable, + asymbol **symbols) { Elf_Internal_Shdr *symtab_hdr; asection *input_section = link_order->u.indirect.section; @@ -5748,7 +5691,7 @@ sh_elf_get_relocated_section_contents (output_bfd, link_info, link_order, bfd_size_type amt; internal_relocs = (_bfd_elf_link_read_relocs - (input_bfd, input_section, (PTR) NULL, + (input_bfd, input_section, NULL, (Elf_Internal_Rela *) NULL, FALSE)); if (internal_relocs == NULL) goto error_return; @@ -5820,8 +5763,7 @@ sh_elf_get_relocated_section_contents (output_bfd, link_info, link_order, This is PT_TLS segment p_vaddr. */ static bfd_vma -dtpoff_base (info) - struct bfd_link_info *info; +dtpoff_base (struct bfd_link_info *info) { /* If tls_segment is NULL, we should have signalled an error already. */ if (elf_hash_table (info)->tls_segment == NULL) @@ -5832,9 +5774,7 @@ dtpoff_base (info) /* Return the relocation value for R_SH_TLS_TPOFF32.. */ static bfd_vma -tpoff (info, address) - struct bfd_link_info *info; - bfd_vma address; +tpoff (struct bfd_link_info *info, bfd_vma address) { /* If tls_segment is NULL, we should have signalled an error already. */ if (elf_hash_table (info)->tls_segment == NULL) @@ -5845,12 +5785,10 @@ tpoff (info, address) } static asection * -sh_elf_gc_mark_hook (sec, info, rel, h, sym) - asection *sec; - struct bfd_link_info *info ATTRIBUTE_UNUSED; - Elf_Internal_Rela *rel; - struct elf_link_hash_entry *h; - Elf_Internal_Sym *sym; +sh_elf_gc_mark_hook (asection *sec, + struct bfd_link_info *info ATTRIBUTE_UNUSED, + Elf_Internal_Rela *rel, struct elf_link_hash_entry *h, + Elf_Internal_Sym *sym) { if (h != NULL) { @@ -5889,11 +5827,8 @@ sh_elf_gc_mark_hook (sec, info, rel, h, sym) /* Update the got entry reference counts for the section being removed. */ static bfd_boolean -sh_elf_gc_sweep_hook (abfd, info, sec, relocs) - bfd *abfd; - struct bfd_link_info *info; - asection *sec; - const Elf_Internal_Rela *relocs; +sh_elf_gc_sweep_hook (bfd *abfd, struct bfd_link_info *info, + asection *sec, const Elf_Internal_Rela *relocs) { Elf_Internal_Shdr *symtab_hdr; struct elf_link_hash_entry **sym_hashes; @@ -6076,9 +6011,9 @@ sh_elf_gc_sweep_hook (abfd, info, sec, relocs) /* Copy the extra info we tack onto an elf_link_hash_entry. */ static void -sh_elf_copy_indirect_symbol (bed, dir, ind) - struct elf_backend_data *bed; - struct elf_link_hash_entry *dir, *ind; +sh_elf_copy_indirect_symbol (struct elf_backend_data *bed, + struct elf_link_hash_entry *dir, + struct elf_link_hash_entry *ind) { struct elf_sh_link_hash_entry *edir, *eind; #ifdef INCLUDE_SHMEDIA @@ -6154,10 +6089,8 @@ sh_elf_copy_indirect_symbol (bed, dir, ind) } static int -sh_elf_optimized_tls_reloc (info, r_type, is_local) - struct bfd_link_info *info; - int r_type; - int is_local; +sh_elf_optimized_tls_reloc (struct bfd_link_info *info, int r_type, + int is_local) { if (info->shared) return r_type; @@ -6181,11 +6114,8 @@ sh_elf_optimized_tls_reloc (info, r_type, is_local) virtual table relocs for gc. */ static bfd_boolean -sh_elf_check_relocs (abfd, info, sec, relocs) - bfd *abfd; - struct bfd_link_info *info; - asection *sec; - const Elf_Internal_Rela *relocs; +sh_elf_check_relocs (bfd *abfd, struct bfd_link_info *info, asection *sec, + const Elf_Internal_Rela *relocs) { Elf_Internal_Shdr *symtab_hdr; struct elf_link_hash_entry **sym_hashes, **sym_hashes_end; @@ -6635,8 +6565,7 @@ sh_elf_check_relocs (abfd, info, sec, relocs) #ifndef sh_elf_set_mach_from_flags static bfd_boolean -sh_elf_set_mach_from_flags (abfd) - bfd *abfd; +sh_elf_set_mach_from_flags (bfd *abfd) { flagword flags = elf_elfheader (abfd)->e_flags; @@ -6678,9 +6607,7 @@ sh_elf_set_mach_from_flags (abfd) /* Function to keep SH specific file flags. */ static bfd_boolean -sh_elf_set_private_flags (abfd, flags) - bfd *abfd; - flagword flags; +sh_elf_set_private_flags (bfd *abfd, flagword flags) { BFD_ASSERT (! elf_flags_init (abfd) || elf_elfheader (abfd)->e_flags == flags); @@ -6695,9 +6622,7 @@ sh_elf_set_private_flags (abfd, flags) /* Copy backend specific data from one object module to another */ static bfd_boolean -sh_elf_copy_private_data (ibfd, obfd) - bfd * ibfd; - bfd * obfd; +sh_elf_copy_private_data (bfd * ibfd, bfd * obfd) { if ( bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) @@ -6712,9 +6637,7 @@ sh_elf_copy_private_data (ibfd, obfd) together, and for linking sh-dsp with sh3e / sh4 objects. */ static bfd_boolean -sh_elf_merge_private_data (ibfd, obfd) - bfd *ibfd; - bfd *obfd; +sh_elf_merge_private_data (bfd *ibfd, bfd *obfd) { flagword old_flags, new_flags; @@ -6755,8 +6678,7 @@ sh_elf_merge_private_data (ibfd, obfd) here. */ static bfd_boolean -sh_elf_object_p (abfd) - bfd *abfd; +sh_elf_object_p (bfd *abfd) { struct sh_elf_obj_tdata *new_tdata; bfd_size_type amt = sizeof (struct sh_elf_obj_tdata); @@ -6777,11 +6699,9 @@ sh_elf_object_p (abfd) dynamic sections here. */ static bfd_boolean -sh_elf_finish_dynamic_symbol (output_bfd, info, h, sym) - bfd *output_bfd; - struct bfd_link_info *info; - struct elf_link_hash_entry *h; - Elf_Internal_Sym *sym; +sh_elf_finish_dynamic_symbol (bfd *output_bfd, struct bfd_link_info *info, + struct elf_link_hash_entry *h, + Elf_Internal_Sym *sym) { struct elf_sh_link_hash_table *htab; @@ -7059,9 +6979,7 @@ sh_elf_finish_dynamic_symbol (output_bfd, info, h, sym) /* Finish up the dynamic sections. */ static bfd_boolean -sh_elf_finish_dynamic_sections (output_bfd, info) - bfd *output_bfd; - struct bfd_link_info *info; +sh_elf_finish_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) { struct elf_sh_link_hash_table *htab; asection *sgot; @@ -7228,8 +7146,7 @@ sh_elf_finish_dynamic_sections (output_bfd, info) } static enum elf_reloc_type_class -sh_elf_reloc_type_class (rela) - const Elf_Internal_Rela *rela; +sh_elf_reloc_type_class (const Elf_Internal_Rela *rela) { switch ((int) ELF32_R_TYPE (rela->r_info)) { @@ -7246,9 +7163,7 @@ sh_elf_reloc_type_class (rela) /* Support for Linux core dump NOTE sections. */ static bfd_boolean -elf32_shlin_grok_prstatus (abfd, note) - bfd *abfd; - Elf_Internal_Note *note; +elf32_shlin_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) { int offset; unsigned int raw_size; @@ -7278,9 +7193,7 @@ elf32_shlin_grok_prstatus (abfd, note) } static bfd_boolean -elf32_shlin_grok_psinfo (abfd, note) - bfd *abfd; - Elf_Internal_Note *note; +elf32_shlin_grok_psinfo (bfd *abfd, Elf_Internal_Note *note) { switch (note->descsz) { diff --git a/bfd/elf32-sh64-com.c b/bfd/elf32-sh64-com.c index b7ae364..4c219e8 100644 --- a/bfd/elf32-sh64-com.c +++ b/bfd/elf32-sh64-com.c @@ -28,15 +28,13 @@ #include "../opcodes/sh64-opc.h" static bfd_boolean sh64_address_in_cranges - PARAMS ((asection *cranges, bfd_vma, sh64_elf_crange *)); + (asection *cranges, bfd_vma, sh64_elf_crange *); /* Ordering functions of a crange, for the qsort and bsearch calls and for different endianness. */ int -_bfd_sh64_crange_qsort_cmpb (p1, p2) - const PTR p1; - const PTR p2; +_bfd_sh64_crange_qsort_cmpb (const void *p1, const void *p2) { bfd_vma a1 = bfd_getb32 (p1); bfd_vma a2 = bfd_getb32 (p2); @@ -49,9 +47,7 @@ _bfd_sh64_crange_qsort_cmpb (p1, p2) } int -_bfd_sh64_crange_qsort_cmpl (p1, p2) - const PTR p1; - const PTR p2; +_bfd_sh64_crange_qsort_cmpl (const void *p1, const void *p2) { bfd_vma a1 = (bfd_vma) bfd_getl32 (p1); bfd_vma a2 = (bfd_vma) bfd_getl32 (p2); @@ -64,9 +60,7 @@ _bfd_sh64_crange_qsort_cmpl (p1, p2) } int -_bfd_sh64_crange_bsearch_cmpb (p1, p2) - const PTR p1; - const PTR p2; +_bfd_sh64_crange_bsearch_cmpb (const void *p1, const void *p2) { bfd_vma a1 = *(bfd_vma *) p1; bfd_vma a2 = (bfd_vma) bfd_getb32 (p2); @@ -81,9 +75,7 @@ _bfd_sh64_crange_bsearch_cmpb (p1, p2) } int -_bfd_sh64_crange_bsearch_cmpl (p1, p2) - const PTR p1; - const PTR p2; +_bfd_sh64_crange_bsearch_cmpl (const void *p1, const void *p2) { bfd_vma a1 = *(bfd_vma *) p1; bfd_vma a2 = (bfd_vma) bfd_getl32 (p2); @@ -102,10 +94,8 @@ _bfd_sh64_crange_bsearch_cmpl (p1, p2) filled into RANGEP if non-NULL. */ static bfd_boolean -sh64_address_in_cranges (cranges, addr, rangep) - asection *cranges; - bfd_vma addr; - sh64_elf_crange *rangep; +sh64_address_in_cranges (asection *cranges, bfd_vma addr, + sh64_elf_crange *rangep) { bfd_byte *cranges_contents; bfd_byte *found_rangep; @@ -200,10 +190,7 @@ error_return: *RANGEP if it's non-NULL. */ enum sh64_elf_cr_type -sh64_get_contents_type (sec, addr, rangep) - asection *sec; - bfd_vma addr; - sh64_elf_crange *rangep; +sh64_get_contents_type (asection *sec, bfd_vma addr, sh64_elf_crange *rangep) { asection *cranges; @@ -256,9 +243,7 @@ sh64_get_contents_type (sec, addr, rangep) /* This is a simpler exported interface for the benefit of gdb et al. */ bfd_boolean -sh64_address_is_shmedia (sec, addr) - asection *sec; - bfd_vma addr; +sh64_address_is_shmedia (asection *sec, bfd_vma addr) { sh64_elf_crange dummy; return sh64_get_contents_type (sec, addr, &dummy) == CRT_SH5_ISA32; diff --git a/bfd/elf32-sh64.c b/bfd/elf32-sh64.c index 4728842..eabc8ee 100644 --- a/bfd/elf32-sh64.c +++ b/bfd/elf32-sh64.c @@ -39,36 +39,36 @@ struct sh64_find_section_vma_data }; static bfd_boolean sh64_elf_new_section_hook - PARAMS ((bfd *, asection *)); + (bfd *, asection *); static bfd_boolean sh64_elf_copy_private_data - PARAMS ((bfd *, bfd *)); + (bfd *, bfd *); static bfd_boolean sh64_elf_merge_private_data - PARAMS ((bfd *, bfd *)); + (bfd *, bfd *); static bfd_boolean sh64_elf_fake_sections - PARAMS ((bfd *, Elf_Internal_Shdr *, asection *)); + (bfd *, Elf_Internal_Shdr *, asection *); static bfd_boolean sh64_elf_set_private_flags - PARAMS ((bfd *, flagword)); + (bfd *, flagword); static bfd_boolean sh64_elf_set_mach_from_flags - PARAMS ((bfd *)); + (bfd *); static bfd_boolean shmedia_prepare_reloc - PARAMS ((struct bfd_link_info *, bfd *, asection *, - bfd_byte *, const Elf_Internal_Rela *, bfd_vma *)); + (struct bfd_link_info *, bfd *, asection *, bfd_byte *, + const Elf_Internal_Rela *, bfd_vma *); static int sh64_elf_get_symbol_type - PARAMS ((Elf_Internal_Sym *, int)); + (Elf_Internal_Sym *, int); static bfd_boolean sh64_elf_add_symbol_hook - PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *, - const char **, flagword *, asection **, bfd_vma *)); + (bfd *, struct bfd_link_info *, const Elf_Internal_Sym *, const char **, + flagword *, asection **, bfd_vma *); static bfd_boolean sh64_elf_link_output_symbol_hook - PARAMS ((bfd *, struct bfd_link_info *, const char *, Elf_Internal_Sym *, - asection *)); + (bfd *, struct bfd_link_info *, const char *, Elf_Internal_Sym *, + asection *); static bfd_boolean sh64_backend_section_from_shdr - PARAMS ((bfd *, Elf_Internal_Shdr *, const char *)); + (bfd *, Elf_Internal_Shdr *, const char *); static void sh64_elf_final_write_processing - PARAMS ((bfd *, bfd_boolean)); + (bfd *, bfd_boolean); static bfd_boolean sh64_bfd_elf_copy_private_section_data - PARAMS ((bfd *, asection *, bfd *, asection *)); + (bfd *, asection *, bfd *, asection *); static void sh64_find_section_for_address - PARAMS ((bfd *, asection *, PTR)); + (bfd *, asection *, void *); /* Let elf32-sh.c handle the "bfd_" definitions, so we only have to intrude with an #ifndef around the function definition. */ @@ -108,9 +108,7 @@ static void sh64_find_section_for_address /* Tack some extra info on struct bfd_elf_section_data. */ static bfd_boolean -sh64_elf_new_section_hook (abfd, sec) - bfd *abfd; - asection *sec; +sh64_elf_new_section_hook (bfd *abfd, asection *sec) { struct _sh64_elf_section_data *sdata; bfd_size_type amt = sizeof (*sdata); @@ -118,7 +116,7 @@ sh64_elf_new_section_hook (abfd, sec) sdata = (struct _sh64_elf_section_data *) bfd_zalloc (abfd, amt); if (sdata == NULL) return FALSE; - sec->used_by_bfd = (PTR) sdata; + sec->used_by_bfd = sdata; return _bfd_elf_new_section_hook (abfd, sec); } @@ -127,10 +125,9 @@ sh64_elf_new_section_hook (abfd, sec) through SHT_SH5_CR_SORTED on a sorted .cranges section. */ bfd_boolean -sh64_elf_fake_sections (output_bfd, elf_section_hdr, asect) - bfd *output_bfd ATTRIBUTE_UNUSED; - Elf_Internal_Shdr *elf_section_hdr; - asection *asect; +sh64_elf_fake_sections (bfd *output_bfd ATTRIBUTE_UNUSED, + Elf_Internal_Shdr *elf_section_hdr, + asection *asect) { if (sh64_elf_section_data (asect)->sh64_info != NULL) elf_section_hdr->sh_flags @@ -147,8 +144,7 @@ sh64_elf_fake_sections (output_bfd, elf_section_hdr, asect) } static bfd_boolean -sh64_elf_set_mach_from_flags (abfd) - bfd *abfd; +sh64_elf_set_mach_from_flags (bfd *abfd) { flagword flags = elf_elfheader (abfd)->e_flags; asection *cranges; @@ -182,9 +178,7 @@ sh64_elf_set_mach_from_flags (abfd) } static bfd_boolean -sh64_elf_copy_private_data (ibfd, obfd) - bfd * ibfd; - bfd * obfd; +sh64_elf_copy_private_data (bfd * ibfd, bfd * obfd) { if ( bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) @@ -199,9 +193,7 @@ sh64_elf_copy_private_data (ibfd, obfd) } static bfd_boolean -sh64_elf_merge_private_data (ibfd, obfd) - bfd *ibfd; - bfd *obfd; +sh64_elf_merge_private_data (bfd *ibfd, bfd *obfd) { flagword old_flags, new_flags; @@ -261,10 +253,8 @@ sh64_elf_merge_private_data (ibfd, obfd) We only recognize SHT_SH5_CR_SORTED, on the .cranges section. */ bfd_boolean -sh64_backend_section_from_shdr (abfd, hdr, name) - bfd *abfd; - Elf_Internal_Shdr *hdr; - const char *name; +sh64_backend_section_from_shdr (bfd *abfd, Elf_Internal_Shdr *hdr, + const char *name) { flagword flags = 0; @@ -308,11 +298,8 @@ sh64_backend_section_from_shdr (abfd, hdr, name) structure for the SH64 ELF section flags to be copied correctly. */ bfd_boolean -sh64_bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec) - bfd *ibfd; - asection *isec; - bfd *obfd; - asection *osec; +sh64_bfd_elf_copy_private_section_data (bfd *ibfd, asection *isec, + bfd *obfd, asection *osec) { struct sh64_section_data *sh64_sec_data; @@ -344,9 +331,7 @@ sh64_bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec) /* Function to keep SH64 specific file flags. */ static bfd_boolean -sh64_elf_set_private_flags (abfd, flags) - bfd * abfd; - flagword flags; +sh64_elf_set_private_flags (bfd *abfd, flagword flags) { BFD_ASSERT (! elf_flags_init (abfd) || elf_elfheader (abfd)->e_flags == flags); @@ -359,9 +344,7 @@ sh64_elf_set_private_flags (abfd, flags) /* Called when writing out an object file to decide the type of a symbol. */ static int -sh64_elf_get_symbol_type (elf_sym, type) - Elf_Internal_Sym * elf_sym; - int type; +sh64_elf_get_symbol_type (Elf_Internal_Sym *elf_sym, int type) { if (ELF_ST_TYPE (elf_sym->st_info) == STT_DATALABEL) return STT_DATALABEL; @@ -388,14 +371,10 @@ sh64_elf_get_symbol_type (elf_sym, type) (not so good). */ static bfd_boolean -sh64_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp) - bfd *abfd; - struct bfd_link_info *info; - const Elf_Internal_Sym *sym; - const char **namep; - flagword *flagsp ATTRIBUTE_UNUSED; - asection **secp; - bfd_vma *valp; +sh64_elf_add_symbol_hook (bfd *abfd, struct bfd_link_info *info, + const Elf_Internal_Sym *sym, const char **namep, + flagword *flagsp ATTRIBUTE_UNUSED, + asection **secp, bfd_vma *valp) { /* We want to do this for relocatable as well as final linking. */ if (ELF_ST_TYPE (sym->st_info) == STT_DATALABEL @@ -489,12 +468,11 @@ sh64_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp) DataLabel symbol. */ bfd_boolean -sh64_elf_link_output_symbol_hook (abfd, info, cname, sym, input_sec) - bfd *abfd ATTRIBUTE_UNUSED; - struct bfd_link_info *info; - const char *cname; - Elf_Internal_Sym *sym; - asection *input_sec ATTRIBUTE_UNUSED; +sh64_elf_link_output_symbol_hook (bfd *abfd ATTRIBUTE_UNUSED, + struct bfd_link_info *info, + const char *cname, + Elf_Internal_Sym *sym, + asection *input_sec ATTRIBUTE_UNUSED) { char *name = (char *) cname; @@ -512,14 +490,9 @@ sh64_elf_link_output_symbol_hook (abfd, info, cname, sym, input_sec) bad value, TRUE if ok. */ static bfd_boolean -shmedia_prepare_reloc (info, abfd, input_section, - contents, rel, relocation) - struct bfd_link_info *info; - bfd *abfd; - asection *input_section; - bfd_byte *contents; - const Elf_Internal_Rela *rel; - bfd_vma *relocation; +shmedia_prepare_reloc (struct bfd_link_info *info, bfd *abfd, + asection *input_section, bfd_byte *contents, + const Elf_Internal_Rela *rel, bfd_vma *relocation) { bfd_vma disp, dropped; @@ -624,10 +597,8 @@ shmedia_prepare_reloc (info, abfd, input_section, is called via bfd_map_over_sections. */ static void -sh64_find_section_for_address (abfd, section, data) - bfd *abfd ATTRIBUTE_UNUSED; - asection *section; - PTR data; +sh64_find_section_for_address (bfd *abfd ATTRIBUTE_UNUSED, + asection *section, void *data) { bfd_vma vma; bfd_size_type size; @@ -663,9 +634,8 @@ sh64_find_section_for_address (abfd, section, data) executables (final linking and objcopy). */ static void -sh64_elf_final_write_processing (abfd, linker) - bfd *abfd; - bfd_boolean linker ATTRIBUTE_UNUSED; +sh64_elf_final_write_processing (bfd *abfd, + bfd_boolean linker ATTRIBUTE_UNUSED) { bfd_vma ld_generated_cranges_size; asection *cranges @@ -717,7 +687,7 @@ sh64_elf_final_write_processing (abfd, linker) fsec_data.section = NULL; bfd_map_over_sections (abfd, sh64_find_section_for_address, - (PTR) &fsec_data); + &fsec_data); if (fsec_data.section && (sh64_get_contents_type (fsec_data.section, elf_elfheader (abfd)->e_entry, diff --git a/bfd/elf32-sh64.h b/bfd/elf32-sh64.h index 87af05b..5916aec 100644 --- a/bfd/elf32-sh64.h +++ b/bfd/elf32-sh64.h @@ -51,16 +51,21 @@ typedef struct { /* Get the contents type of an arbitrary address, or return CRT_NONE. */ extern enum sh64_elf_cr_type sh64_get_contents_type - PARAMS ((asection *, bfd_vma, sh64_elf_crange *)); + (asection *, bfd_vma, sh64_elf_crange *); /* Simpler interface. FIXME: This seems redundant now that we export the interface above. */ -extern bfd_boolean sh64_address_is_shmedia PARAMS ((asection *, bfd_vma)); - -extern int _bfd_sh64_crange_qsort_cmpb PARAMS ((const void *, const void *)); -extern int _bfd_sh64_crange_qsort_cmpl PARAMS ((const void *, const void *)); -extern int _bfd_sh64_crange_bsearch_cmpb PARAMS ((const void *, const void *)); -extern int _bfd_sh64_crange_bsearch_cmpl PARAMS ((const void *, const void *)); +extern bfd_boolean sh64_address_is_shmedia + (asection *, bfd_vma); + +extern int _bfd_sh64_crange_qsort_cmpb + (const void *, const void *); +extern int _bfd_sh64_crange_qsort_cmpl + (const void *, const void *); +extern int _bfd_sh64_crange_bsearch_cmpb + (const void *, const void *); +extern int _bfd_sh64_crange_bsearch_cmpl + (const void *, const void *); struct sh64_section_data { diff --git a/bfd/elf64-sh64.c b/bfd/elf64-sh64.c index 95bbbd2..234b237 100644 --- a/bfd/elf64-sh64.c +++ b/bfd/elf64-sh64.c @@ -99,7 +99,7 @@ struct elf_sh64_link_hash_table #define sh64_elf64_link_hash_traverse(table, func, info) \ (elf_link_hash_traverse \ (&(table)->root, \ - (bfd_boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \ + (bfd_boolean (*) (struct elf_link_hash_entry *, void *)) (func), \ (info))) /* Get the sh ELF linker hash table from a link_info structure. */ @@ -108,71 +108,69 @@ struct elf_sh64_link_hash_table ((struct elf_sh64_link_hash_table *) ((p)->hash)) static bfd_boolean sh_elf64_copy_private_data - PARAMS ((bfd *, bfd *)); + (bfd *, bfd *); static bfd_boolean sh_elf64_copy_private_data_internal - PARAMS ((bfd *, bfd *)); + (bfd *, bfd *); static bfd_boolean sh_elf64_merge_private_data - PARAMS ((bfd *, bfd *)); + (bfd *, bfd *); static bfd_reloc_status_type sh_elf64_ignore_reloc - PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); + (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); static bfd_reloc_status_type sh_elf64_reloc - PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); + (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); static reloc_howto_type *sh_elf64_reloc_type_lookup - PARAMS ((bfd *, bfd_reloc_code_real_type)); + (bfd *, bfd_reloc_code_real_type); static void sh_elf64_info_to_howto - PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); + (bfd *, arelent *, Elf_Internal_Rela *); static bfd_boolean sh_elf64_relocate_section - PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, - Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); + (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, + Elf_Internal_Rela *, Elf_Internal_Sym *, asection **); static bfd_byte *sh_elf64_get_relocated_section_contents - PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, - bfd_byte *, bfd_boolean, asymbol **)); + (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *, + bfd_boolean, asymbol **); static bfd_boolean sh_elf64_set_mach_from_flags - PARAMS ((bfd *)); + (bfd *); static bfd_boolean sh_elf64_set_private_flags - PARAMS ((bfd *, flagword)); + (bfd *, flagword); static asection *sh_elf64_gc_mark_hook - PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, - struct elf_link_hash_entry *, Elf_Internal_Sym *)); + (asection *, struct bfd_link_info *, Elf_Internal_Rela *, + struct elf_link_hash_entry *, Elf_Internal_Sym *); static bfd_boolean sh_elf64_gc_sweep_hook - PARAMS ((bfd *, struct bfd_link_info *, asection *, - const Elf_Internal_Rela *)); + (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *); static bfd_boolean sh_elf64_check_relocs - PARAMS ((bfd *, struct bfd_link_info *, asection *, - const Elf_Internal_Rela *)); + (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *); static int sh64_elf64_get_symbol_type - PARAMS ((Elf_Internal_Sym *, int)); + (Elf_Internal_Sym *, int); static bfd_boolean sh64_elf64_add_symbol_hook - PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *, - const char **, flagword *, asection **, bfd_vma *)); + (bfd *, struct bfd_link_info *, const Elf_Internal_Sym *, const char **, + flagword *, asection **, bfd_vma *); static bfd_boolean sh64_elf64_link_output_symbol_hook - PARAMS ((bfd *, struct bfd_link_info *, const char *, Elf_Internal_Sym *, - asection *)); + (bfd *, struct bfd_link_info *, const char *, Elf_Internal_Sym *, + asection *); static bfd_boolean sh64_elf64_fake_sections - PARAMS ((bfd *, Elf_Internal_Shdr *, asection *)); + (bfd *, Elf_Internal_Shdr *, asection *); static void sh64_elf64_final_write_processing - PARAMS ((bfd *, bfd_boolean)); + (bfd *, bfd_boolean); static struct bfd_hash_entry *sh64_elf64_link_hash_newfunc - PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); + (struct bfd_hash_entry *, struct bfd_hash_table *, const char *); static struct bfd_link_hash_table *sh64_elf64_link_hash_table_create - PARAMS ((bfd *)); + (bfd *); inline static void movi_shori_putval - PARAMS ((bfd *, unsigned long, char *)); + (bfd *, unsigned long, char *); inline static void movi_3shori_putval - PARAMS ((bfd *, bfd_vma, char *)); + (bfd *, bfd_vma, char *); static bfd_boolean sh64_elf64_create_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); static bfd_boolean sh64_elf64_adjust_dynamic_symbol - PARAMS ((struct bfd_link_info *info, struct elf_link_hash_entry *)); + (struct bfd_link_info *info, struct elf_link_hash_entry *); static bfd_boolean sh64_elf64_discard_copies - PARAMS ((struct elf_sh64_link_hash_entry *, PTR)); + (struct elf_sh64_link_hash_entry *, void *); static bfd_boolean sh64_elf64_size_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); static bfd_boolean sh64_elf64_finish_dynamic_symbol - PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, - Elf_Internal_Sym *)); + (bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, + Elf_Internal_Sym *); static bfd_boolean sh64_elf64_finish_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *)); + (bfd *, struct bfd_link_info *); static reloc_howto_type sh_elf64_howto_table[] = { /* No relocation. */ @@ -1300,15 +1298,11 @@ static reloc_howto_type sh_elf64_howto_table[] = { which the linker should otherwise ignore. */ static bfd_reloc_status_type -sh_elf64_ignore_reloc (abfd, reloc_entry, symbol, data, input_section, - output_bfd, error_message) - bfd *abfd ATTRIBUTE_UNUSED; - arelent *reloc_entry; - asymbol *symbol ATTRIBUTE_UNUSED; - PTR data ATTRIBUTE_UNUSED; - asection *input_section; - bfd *output_bfd; - char **error_message ATTRIBUTE_UNUSED; +sh_elf64_ignore_reloc (bfd *abfd ATTRIBUTE_UNUSED, arelent *reloc_entry, + asymbol *symbol ATTRIBUTE_UNUSED, + void *data ATTRIBUTE_UNUSED, asection *input_section, + bfd *output_bfd, + char **error_message ATTRIBUTE_UNUSED) { if (output_bfd != NULL) reloc_entry->address += input_section->output_offset; @@ -1321,15 +1315,9 @@ sh_elf64_ignore_reloc (abfd, reloc_entry, symbol, data, input_section, See sh_elf_reloc in elf32-sh.c for the original. */ static bfd_reloc_status_type -sh_elf64_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd, - error_message) - bfd *abfd; - arelent *reloc_entry; - asymbol *symbol_in; - PTR data; - asection *input_section; - bfd *output_bfd; - char **error_message ATTRIBUTE_UNUSED; +sh_elf64_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol_in, + void *data, asection *input_section, bfd *output_bfd, + char **error_message ATTRIBUTE_UNUSED) { unsigned long insn; bfd_vma sym_value; @@ -1449,9 +1437,8 @@ static const struct elf_reloc_map sh64_reloc_map[] = corresponding SH ELf reloc. */ static reloc_howto_type * -sh_elf64_reloc_type_lookup (abfd, code) - bfd *abfd ATTRIBUTE_UNUSED; - bfd_reloc_code_real_type code; +sh_elf64_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, + bfd_reloc_code_real_type code) { unsigned int i; @@ -1469,10 +1456,8 @@ sh_elf64_reloc_type_lookup (abfd, code) See sh_elf_info_to_howto in elf32-sh.c for the original. */ static void -sh_elf64_info_to_howto (abfd, cache_ptr, dst) - bfd *abfd ATTRIBUTE_UNUSED; - arelent *cache_ptr; - Elf_Internal_Rela *dst; +sh_elf64_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr, + Elf_Internal_Rela *dst) { unsigned int r; @@ -1492,16 +1477,12 @@ sh_elf64_info_to_howto (abfd, cache_ptr, dst) See sh_elf_info_to_howto in elf32-sh.c for the original. */ static bfd_boolean -sh_elf64_relocate_section (output_bfd, info, input_bfd, input_section, - contents, relocs, local_syms, local_sections) - bfd *output_bfd ATTRIBUTE_UNUSED; - struct bfd_link_info *info; - bfd *input_bfd; - asection *input_section; - bfd_byte *contents; - Elf_Internal_Rela *relocs; - Elf_Internal_Sym *local_syms; - asection **local_sections; +sh_elf64_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED, + struct bfd_link_info *info, bfd *input_bfd, + asection *input_section, bfd_byte *contents, + Elf_Internal_Rela *relocs, + Elf_Internal_Sym *local_syms, + asection **local_sections) { Elf_Internal_Shdr *symtab_hdr; struct elf_link_hash_entry **sym_hashes; @@ -2177,14 +2158,12 @@ sh_elf64_relocate_section (output_bfd, info, input_bfd, input_section, See sh_elf_relocate_section in elf32-sh.c for the original. */ static bfd_byte * -sh_elf64_get_relocated_section_contents (output_bfd, link_info, link_order, - data, relocatable, symbols) - bfd *output_bfd; - struct bfd_link_info *link_info; - struct bfd_link_order *link_order; - bfd_byte *data; - bfd_boolean relocatable; - asymbol **symbols; +sh_elf64_get_relocated_section_contents (bfd *output_bfd, + struct bfd_link_info *link_info, + struct bfd_link_order *link_order, + bfd_byte *data, + bfd_boolean relocatable, + asymbol **symbols) { Elf_Internal_Shdr *symtab_hdr; asection *input_section = link_order->u.indirect.section; @@ -2227,7 +2206,7 @@ sh_elf64_get_relocated_section_contents (output_bfd, link_info, link_order, } internal_relocs = (_bfd_elf_link_read_relocs - (input_bfd, input_section, (PTR) NULL, + (input_bfd, input_section, NULL, (Elf_Internal_Rela *) NULL, FALSE)); if (internal_relocs == NULL) goto error_return; @@ -2291,10 +2270,9 @@ sh_elf64_get_relocated_section_contents (output_bfd, link_info, link_order, /* Set the SHF_SH5_ISA32 flag for ISA SHmedia code sections. */ bfd_boolean -sh64_elf64_fake_sections (output_bfd, elf_section_hdr, asect) - bfd *output_bfd ATTRIBUTE_UNUSED; - Elf_Internal_Shdr *elf_section_hdr; - asection *asect; +sh64_elf64_fake_sections (bfd *output_bfd ATTRIBUTE_UNUSED, + Elf_Internal_Shdr *elf_section_hdr, + asection *asect) { /* Code sections can only contain SH64 code, so mark them as such. */ if (bfd_get_section_flags (output_bfd, asect) & SEC_CODE) @@ -2304,8 +2282,7 @@ sh64_elf64_fake_sections (output_bfd, elf_section_hdr, asect) } static bfd_boolean -sh_elf64_set_mach_from_flags (abfd) - bfd *abfd; +sh_elf64_set_mach_from_flags (bfd *abfd) { flagword flags = elf_elfheader (abfd)->e_flags; @@ -2328,9 +2305,7 @@ sh_elf64_set_mach_from_flags (abfd) See sh64_elf_set_private_flags in elf32-sh64.c for the original. */ static bfd_boolean -sh_elf64_set_private_flags (abfd, flags) - bfd * abfd; - flagword flags; +sh_elf64_set_private_flags (bfd *abfd, flagword flags) { BFD_ASSERT (! elf_flags_init (abfd) || elf_elfheader (abfd)->e_flags == flags); @@ -2344,9 +2319,7 @@ sh_elf64_set_private_flags (abfd, flags) code, to keep attributes the same as for SHmedia in 32-bit ELF. */ static bfd_boolean -sh_elf64_copy_private_data_internal (ibfd, obfd) - bfd * ibfd; - bfd * obfd; +sh_elf64_copy_private_data_internal (bfd *ibfd, bfd *obfd) { Elf_Internal_Shdr **o_shdrp; asection *isec; @@ -2377,17 +2350,13 @@ sh_elf64_copy_private_data_internal (ibfd, obfd) } static bfd_boolean -sh_elf64_copy_private_data (ibfd, obfd) - bfd * ibfd; - bfd * obfd; +sh_elf64_copy_private_data (bfd *ibfd, bfd *obfd) { return sh_elf64_copy_private_data_internal (ibfd, obfd); } static bfd_boolean -sh_elf64_merge_private_data (ibfd, obfd) - bfd *ibfd; - bfd *obfd; +sh_elf64_merge_private_data (bfd *ibfd, bfd *obfd) { flagword old_flags, new_flags; @@ -2450,12 +2419,11 @@ sh_elf64_merge_private_data (ibfd, obfd) relocation. */ static asection * -sh_elf64_gc_mark_hook (sec, info, rel, h, sym) - asection *sec; - struct bfd_link_info *info ATTRIBUTE_UNUSED; - Elf_Internal_Rela *rel; - struct elf_link_hash_entry *h; - Elf_Internal_Sym *sym; +sh_elf64_gc_mark_hook (asection *sec, + struct bfd_link_info *info ATTRIBUTE_UNUSED, + Elf_Internal_Rela *rel, + struct elf_link_hash_entry *h, + Elf_Internal_Sym *sym) { if (h != NULL) { @@ -2492,11 +2460,10 @@ sh_elf64_gc_mark_hook (sec, info, rel, h, sym) /* Update the got entry reference counts for the section being removed. */ static bfd_boolean -sh_elf64_gc_sweep_hook (abfd, info, sec, relocs) - bfd *abfd ATTRIBUTE_UNUSED; - struct bfd_link_info *info ATTRIBUTE_UNUSED; - asection *sec ATTRIBUTE_UNUSED; - const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED; +sh_elf64_gc_sweep_hook (bfd *abfd ATTRIBUTE_UNUSED, + struct bfd_link_info *info ATTRIBUTE_UNUSED, + asection *sec ATTRIBUTE_UNUSED, + const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED) { /* No got and plt entries for 64-bit SH at present. */ return TRUE; @@ -2507,11 +2474,8 @@ sh_elf64_gc_sweep_hook (abfd, info, sec, relocs) virtual table relocs for gc. */ static bfd_boolean -sh_elf64_check_relocs (abfd, info, sec, relocs) - bfd *abfd; - struct bfd_link_info *info; - asection *sec; - const Elf_Internal_Rela *relocs; +sh_elf64_check_relocs (bfd *abfd, struct bfd_link_info *info, + asection *sec, const Elf_Internal_Rela *relocs) { Elf_Internal_Shdr *symtab_hdr; struct elf_link_hash_entry **sym_hashes, **sym_hashes_end; @@ -2884,9 +2848,7 @@ sh_elf64_check_relocs (abfd, info, sec, relocs) } static int -sh64_elf64_get_symbol_type (elf_sym, type) - Elf_Internal_Sym * elf_sym; - int type; +sh64_elf64_get_symbol_type (Elf_Internal_Sym * elf_sym, int type) { if (ELF_ST_TYPE (elf_sym->st_info) == STT_DATALABEL) return STT_DATALABEL; @@ -2917,14 +2879,10 @@ sh64_elf64_get_symbol_type (elf_sym, type) (not so good). */ static bfd_boolean -sh64_elf64_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp) - bfd *abfd; - struct bfd_link_info *info; - const Elf_Internal_Sym *sym; - const char **namep; - flagword *flagsp ATTRIBUTE_UNUSED; - asection **secp; - bfd_vma *valp; +sh64_elf64_add_symbol_hook (bfd *abfd, struct bfd_link_info *info, + const Elf_Internal_Sym *sym, const char **namep, + flagword *flagsp ATTRIBUTE_UNUSED, + asection **secp, bfd_vma *valp) { /* We want to do this for relocatable as well as final linking. */ if (ELF_ST_TYPE (sym->st_info) == STT_DATALABEL @@ -3018,12 +2976,11 @@ sh64_elf64_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp) DataLabel symbol. */ static bfd_boolean -sh64_elf64_link_output_symbol_hook (abfd, info, cname, sym, input_sec) - bfd *abfd ATTRIBUTE_UNUSED; - struct bfd_link_info *info; - const char *cname; - Elf_Internal_Sym *sym; - asection *input_sec ATTRIBUTE_UNUSED; +sh64_elf64_link_output_symbol_hook (bfd *abfd ATTRIBUTE_UNUSED, + struct bfd_link_info *info, + const char *cname, + Elf_Internal_Sym *sym, + asection *input_sec ATTRIBUTE_UNUSED) { char *name = (char *) cname; @@ -3044,9 +3001,8 @@ sh64_elf64_link_output_symbol_hook (abfd, info, cname, sym, input_sec) before jumping to the program entry. */ static void -sh64_elf64_final_write_processing (abfd, linker) - bfd *abfd; - bfd_boolean linker ATTRIBUTE_UNUSED; +sh64_elf64_final_write_processing (bfd *abfd, + bfd_boolean linker ATTRIBUTE_UNUSED) { /* FIXME: Perhaps we shouldn't do this if the entry address was supplied numerically, but we currently lack the infrastructure to recognize @@ -3190,10 +3146,9 @@ static const bfd_byte *elf_sh64_pic_plt_entry; /* Create an entry in an sh ELF linker hash table. */ static struct bfd_hash_entry * -sh64_elf64_link_hash_newfunc (entry, table, string) - struct bfd_hash_entry *entry; - struct bfd_hash_table *table; - const char *string; +sh64_elf64_link_hash_newfunc (struct bfd_hash_entry *entry, + struct bfd_hash_table *table, + const char *string) { struct elf_sh64_link_hash_entry *ret = (struct elf_sh64_link_hash_entry *) entry; @@ -3223,8 +3178,7 @@ sh64_elf64_link_hash_newfunc (entry, table, string) /* Create an sh64 ELF linker hash table. */ static struct bfd_link_hash_table * -sh64_elf64_link_hash_table_create (abfd) - bfd *abfd; +sh64_elf64_link_hash_table_create (bfd *abfd) { struct elf_sh64_link_hash_table *ret; @@ -3244,10 +3198,7 @@ sh64_elf64_link_hash_table_create (abfd) } inline static void -movi_shori_putval (output_bfd, value, addr) - bfd *output_bfd; - unsigned long value; - char *addr; +movi_shori_putval (bfd *output_bfd, unsigned long value, char *addr) { bfd_put_32 (output_bfd, bfd_get_32 (output_bfd, addr) @@ -3260,10 +3211,7 @@ movi_shori_putval (output_bfd, value, addr) } inline static void -movi_3shori_putval (output_bfd, value, addr) - bfd *output_bfd; - bfd_vma value; - char *addr; +movi_3shori_putval (bfd *output_bfd, bfd_vma value, char *addr) { bfd_put_32 (output_bfd, bfd_get_32 (output_bfd, addr) @@ -3286,9 +3234,7 @@ movi_3shori_putval (output_bfd, value, addr) /* Create dynamic sections when linking against a dynamic object. */ static bfd_boolean -sh64_elf64_create_dynamic_sections (abfd, info) - bfd *abfd; - struct bfd_link_info *info; +sh64_elf64_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info) { flagword flags, pltflags; register asection *s; @@ -3430,9 +3376,8 @@ sh64_elf64_create_dynamic_sections (abfd, info) understand. */ static bfd_boolean -sh64_elf64_adjust_dynamic_symbol (info, h) - struct bfd_link_info *info; - struct elf_link_hash_entry *h; +sh64_elf64_adjust_dynamic_symbol (struct bfd_link_info *info, + struct elf_link_hash_entry *h) { bfd *dynobj; asection *s; @@ -3605,9 +3550,8 @@ sh64_elf64_adjust_dynamic_symbol (info, h) relocate_section routine. */ static bfd_boolean -sh64_elf64_discard_copies (h, ignore) - struct elf_sh64_link_hash_entry *h; - PTR ignore ATTRIBUTE_UNUSED; +sh64_elf64_discard_copies (struct elf_sh64_link_hash_entry *h, + void *ignore ATTRIBUTE_UNUSED) { struct elf_sh64_pcrel_relocs_copied *s; @@ -3627,9 +3571,8 @@ sh64_elf64_discard_copies (h, ignore) /* Set the sizes of the dynamic sections. */ static bfd_boolean -sh64_elf64_size_dynamic_sections (output_bfd, info) - bfd *output_bfd; - struct bfd_link_info *info; +sh64_elf64_size_dynamic_sections (bfd *output_bfd, + struct bfd_link_info *info) { bfd *dynobj; asection *s; @@ -3669,8 +3612,7 @@ sh64_elf64_size_dynamic_sections (output_bfd, info) will not fill them in in the relocate_section routine. */ if (info->shared && info->symbolic) sh64_elf64_link_hash_traverse (sh64_elf64_hash_table (info), - sh64_elf64_discard_copies, - (PTR) NULL); + sh64_elf64_discard_copies, NULL); /* The check_relocs and adjust_dynamic_symbol entry points have determined the sizes of the various dynamic sections. Allocate @@ -3815,11 +3757,10 @@ sh64_elf64_size_dynamic_sections (output_bfd, info) dynamic sections here. */ static bfd_boolean -sh64_elf64_finish_dynamic_symbol (output_bfd, info, h, sym) - bfd *output_bfd; - struct bfd_link_info *info; - struct elf_link_hash_entry *h; - Elf_Internal_Sym *sym; +sh64_elf64_finish_dynamic_symbol (bfd *output_bfd, + struct bfd_link_info *info, + struct elf_link_hash_entry *h, + Elf_Internal_Sym *sym) { bfd *dynobj; @@ -4015,9 +3956,8 @@ sh64_elf64_finish_dynamic_symbol (output_bfd, info, h, sym) /* Finish up the dynamic sections. */ static bfd_boolean -sh64_elf64_finish_dynamic_sections (output_bfd, info) - bfd *output_bfd; - struct bfd_link_info *info; +sh64_elf64_finish_dynamic_sections (bfd *output_bfd, + struct bfd_link_info *info) { bfd *dynobj; asection *sgot; |