diff options
author | Nick Clifton <nickc@redhat.com> | 2012-07-13 14:22:50 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2012-07-13 14:22:50 +0000 |
commit | 2c3fc38946973ec305b63248abdd170eda059f80 (patch) | |
tree | 1f06480e02f06ee08d869db92f4c8677b76968ba /bfd/elf64-mmix.c | |
parent | cd6f1cf350bbc5d91977fccb8082cecea60d8465 (diff) | |
download | gdb-2c3fc38946973ec305b63248abdd170eda059f80.zip gdb-2c3fc38946973ec305b63248abdd170eda059f80.tar.gz gdb-2c3fc38946973ec305b63248abdd170eda059f80.tar.bz2 |
* aix386-core.c: Remove use of PTR and PARAMS macros.
* archive.c: Likewise.
* cache.c: Likewise.
* cisco-core.c: Likewise.
* coff-alpha.c: Likewise.
* coff-apollo.c: Likewise.
* coff-aux.c: Likewise.
* coff-h8300.c: Likewise.
* coff-h8500.c: Likewise.
* coff-i386.c: Likewise.
* coff-i960.c: Likewise.
* coff-ia64.c: Likewise.
* coff-m68k.c: Likewise.
* coff-m88k.c: Likewise.
* coff-mcore.c: Likewise.
* coff-mips.c: Likewise.
* coff-or32.c: Likewise.
* coff-ppc.c: Likewise.
* coff-rs6000.c: Likewise.
* coff-sh.c: Likewise.
* coff-sparc.c: Likewise.
* coff-stgo32.c: Likewise.
* coff-tic30.c: Likewise.
* coff-tic4x.c: Likewise.
* coff-tic54x.c: Likewise.
* coff-tic80.c: Likewise.
* coff-w65.c: Likewise.
* cofflink.c: Likewise.
* cpu-arc.c: Likewise.
* cpu-cris.c: Likewise.
* cpu-h8500.c: Likewise.
* cpu-i960.c: Likewise.
* cpu-msp430.c: Likewise.
* cpu-ns32k.c: Likewise.
* cpu-powerpc.c: Likewise.
* cpu-rs6000.c: Likewise.
* cpu-tic4x.c: Likewise.
* cpu-w65.c: Likewise.
* ecoff.c: Likewise.
* ecofflink.c: Likewise.
* elf-m10200.c: Likewise.
* elf32-bfin.c: Likewise.
* elf32-cris.c: Likewise.
* elf32-crx.c: Likewise.
* elf32-fr30.c: Likewise.
* elf32-frv.c: Likewise.
* elf32-h8300.c: Likewise.
* elf32-i960.c: Likewise.
* elf32-m32c.c: Likewise.
* elf32-m68hc11.c: Likewise.
* elf32-m68hc12.c: Likewise.
* elf32-m68hc1x.c: Likewise.
* elf32-m68k.c: Likewise.
* elf32-mcore.c: Likewise.
* elf32-rl78.c: Likewise.
* elf32-rx.c: Likewise.
* elf32-s390.c: Likewise.
* elf32-vax.c: Likewise.
* elf64-alpha.c: Likewise.
* elf64-mmix.c: Likewise.
* elf64-s390.c: Likewise.
* elf64-sparc.c: Likewise.
* elfnn-ia64.c: Likewise.
* elfxx-mips.c: Likewise.
* elfxx-sparc.c: Likewise.
* hash.c: Likewise.
* hp300hpux.c: Likewise.
* hppabsd-core.c: Likewise.
* hpux-core.c: Likewise.
* i386dynix.c: Likewise.
* i386linux.c: Likewise.
* i386lynx.c: Likewise.
* i386mach3.c: Likewise.
* i386msdos.c: Likewise.
* i386os9k.c: Likewise.
* irix-core.c: Likewise.
* lynx-core.c: Likewise.
* m68klinux.c: Likewise.
* mach-o.h: Likewise.
* mipsbsd.c: Likewise.
* netbsd-core.c: Likewise.
* nlm32-i386.c: Likewise.
* osf-core.c: Likewise.
* pc532-mach.c: Likewise.
* pef.c: Likewise.
* ppcboot.c: Likewise.
* ptrace-core.c: Likewise.
* reloc16.c: Likewise.
* sco5-core.c: Likewise.
* som.h: Likewise.
* sparclinux.c: Likewise.
* sparclynx.c: Likewise.
* ticoff.h: Likewise.
* trad-core.c: Likewise.
* vms-lib.c: Likewise.
* xsym.h: Likewise.
Diffstat (limited to 'bfd/elf64-mmix.c')
-rw-r--r-- | bfd/elf64-mmix.c | 229 |
1 files changed, 78 insertions, 151 deletions
diff --git a/bfd/elf64-mmix.c b/bfd/elf64-mmix.c index 1eb725d..3195075 100644 --- a/bfd/elf64-mmix.c +++ b/bfd/elf64-mmix.c @@ -167,70 +167,24 @@ struct bpo_greg_section_info struct bpo_reloc_request *reloc_request; }; -static int mmix_elf_link_output_symbol_hook - PARAMS ((struct bfd_link_info *, const char *, Elf_Internal_Sym *, - asection *, struct elf_link_hash_entry *)); -static bfd_reloc_status_type mmix_elf_reloc - PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); +extern bfd_boolean mmix_elf_final_link (bfd *, struct bfd_link_info *); -static reloc_howto_type *bfd_elf64_bfd_reloc_type_lookup - PARAMS ((bfd *, bfd_reloc_code_real_type)); - -static void mmix_info_to_howto_rela - PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); - -static int mmix_elf_sort_relocs PARAMS ((const PTR, const PTR)); - -static bfd_boolean mmix_elf_new_section_hook - PARAMS ((bfd *, asection *)); - -static bfd_boolean mmix_elf_check_relocs - PARAMS ((bfd *, struct bfd_link_info *, asection *, - const Elf_Internal_Rela *)); - -static bfd_boolean mmix_elf_check_common_relocs - PARAMS ((bfd *, struct bfd_link_info *, asection *, - const Elf_Internal_Rela *)); - -static bfd_boolean mmix_elf_relocate_section - PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, - Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); - -static bfd_reloc_status_type mmix_final_link_relocate - (reloc_howto_type *, asection *, bfd_byte *, bfd_vma, bfd_signed_vma, - bfd_vma, const char *, asection *, char **); - -static bfd_reloc_status_type mmix_elf_perform_relocation - (asection *, reloc_howto_type *, void *, bfd_vma, bfd_vma, char **); - -static bfd_boolean mmix_elf_section_from_bfd_section - PARAMS ((bfd *, asection *, int *)); - -static bfd_boolean mmix_elf_add_symbol_hook - PARAMS ((bfd *, struct bfd_link_info *, Elf_Internal_Sym *, - const char **, flagword *, asection **, bfd_vma *)); - -static bfd_boolean mmix_elf_is_local_label_name - PARAMS ((bfd *, const char *)); - -static int bpo_reloc_request_sort_fn PARAMS ((const PTR, const PTR)); - -static bfd_boolean mmix_elf_relax_section - PARAMS ((bfd *abfd, asection *sec, struct bfd_link_info *link_info, - bfd_boolean *again)); - -extern bfd_boolean mmix_elf_final_link PARAMS ((bfd *, struct bfd_link_info *)); - -extern void mmix_elf_symbol_processing PARAMS ((bfd *, asymbol *)); +extern void mmix_elf_symbol_processing (bfd *, asymbol *); /* Only intended to be called from a debugger. */ extern void mmix_dump_bpo_gregs - PARAMS ((struct bfd_link_info *, bfd_error_handler_type)); + (struct bfd_link_info *, bfd_error_handler_type); static void -mmix_set_relaxable_size - PARAMS ((bfd *, asection *, void *)); +mmix_set_relaxable_size (bfd *, asection *, void *); +static bfd_reloc_status_type +mmix_elf_reloc (bfd *, arelent *, asymbol *, void *, + asection *, bfd *, char **); +static bfd_reloc_status_type +mmix_final_link_relocate (reloc_howto_type *, asection *, bfd_byte *, bfd_vma, + bfd_signed_vma, bfd_vma, const char *, asection *, + char **); /* Watch out: this currently needs to have elements with the same index as @@ -841,9 +795,8 @@ static const struct mmix_reloc_map mmix_reloc_map[] = }; static reloc_howto_type * -bfd_elf64_bfd_reloc_type_lookup (abfd, code) - bfd *abfd ATTRIBUTE_UNUSED; - bfd_reloc_code_real_type code; +bfd_elf64_bfd_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, + bfd_reloc_code_real_type code) { unsigned int i; @@ -875,9 +828,7 @@ bfd_elf64_bfd_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, } static bfd_boolean -mmix_elf_new_section_hook (abfd, sec) - bfd *abfd; - asection *sec; +mmix_elf_new_section_hook (bfd *abfd, asection *sec) { if (!sec->used_by_bfd) { @@ -1303,10 +1254,9 @@ mmix_elf_perform_relocation (asection *isec, reloc_howto_type *howto, /* Set the howto pointer for an MMIX ELF reloc (type RELA). */ static void -mmix_info_to_howto_rela (abfd, cache_ptr, dst) - bfd *abfd ATTRIBUTE_UNUSED; - arelent *cache_ptr; - Elf_Internal_Rela *dst; +mmix_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED, + arelent *cache_ptr, + Elf_Internal_Rela *dst) { unsigned int r_type; @@ -1320,15 +1270,13 @@ mmix_info_to_howto_rela (abfd, cache_ptr, dst) the reloc_table. We don't get here for final pure ELF linking. */ static bfd_reloc_status_type -mmix_elf_reloc (abfd, reloc_entry, symbol, data, input_section, - output_bfd, error_message) - bfd *abfd; - arelent *reloc_entry; - asymbol *symbol; - PTR data; - asection *input_section; - bfd *output_bfd; - char **error_message; +mmix_elf_reloc (bfd *abfd, + arelent *reloc_entry, + asymbol *symbol, + void * data, + asection *input_section, + bfd *output_bfd, + char **error_message) { bfd_vma relocation; bfd_reloc_status_type r; @@ -1398,16 +1346,14 @@ mmix_elf_reloc (abfd, reloc_entry, symbol, data, input_section, for guidance if you're thinking of copying this. */ static bfd_boolean -mmix_elf_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; +mmix_elf_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; @@ -1858,9 +1804,7 @@ mmix_elf_gc_sweep_hook (bfd *abfd ATTRIBUTE_UNUSED, /* Sort register relocs to come before expanding relocs. */ static int -mmix_elf_sort_relocs (p1, p2) - const PTR p1; - const PTR p2; +mmix_elf_sort_relocs (const void * p1, const void * p2) { const Elf_Internal_Rela *r1 = (const Elf_Internal_Rela *) p1; const Elf_Internal_Rela *r2 = (const Elf_Internal_Rela *) p2; @@ -1893,11 +1837,10 @@ mmix_elf_sort_relocs (p1, p2) /* Subset of mmix_elf_check_relocs, common to ELF and mmo linking. */ static bfd_boolean -mmix_elf_check_common_relocs (abfd, info, sec, relocs) - bfd *abfd; - struct bfd_link_info *info; - asection *sec; - const Elf_Internal_Rela *relocs; +mmix_elf_check_common_relocs (bfd *abfd, + struct bfd_link_info *info, + asection *sec, + const Elf_Internal_Rela *relocs) { bfd *bpo_greg_owner = NULL; asection *allocated_gregs_section = NULL; @@ -1930,7 +1873,7 @@ mmix_elf_check_common_relocs (abfd, info, sec, relocs) if (bpo_greg_owner == NULL) { bpo_greg_owner = abfd; - info->base_file = (PTR) bpo_greg_owner; + info->base_file = bpo_greg_owner; } if (allocated_gregs_section == NULL) @@ -2026,11 +1969,10 @@ mmix_elf_check_common_relocs (abfd, info, sec, relocs) /* Look through the relocs for a section during the first phase. */ static bfd_boolean -mmix_elf_check_relocs (abfd, info, sec, relocs) - bfd *abfd; - struct bfd_link_info *info; - asection *sec; - const Elf_Internal_Rela *relocs; +mmix_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; @@ -2042,7 +1984,7 @@ mmix_elf_check_relocs (abfd, info, sec, relocs) /* First we sort the relocs so that any register relocs come before expansion-relocs to the same insn. FIXME: Not done for mmo. */ - qsort ((PTR) relocs, sec->reloc_count, sizeof (Elf_Internal_Rela), + qsort ((void *) relocs, sec->reloc_count, sizeof (Elf_Internal_Rela), mmix_elf_sort_relocs); /* Do the common part. */ @@ -2096,9 +2038,7 @@ mmix_elf_check_relocs (abfd, info, sec, relocs) Copied from elf_link_add_object_symbols. */ bfd_boolean -_bfd_mmix_check_all_relocs (abfd, info) - bfd *abfd; - struct bfd_link_info *info; +_bfd_mmix_check_all_relocs (bfd *abfd, struct bfd_link_info *info) { asection *o; @@ -2115,7 +2055,7 @@ _bfd_mmix_check_all_relocs (abfd, info) continue; internal_relocs - = _bfd_elf_link_read_relocs (abfd, o, (PTR) NULL, + = _bfd_elf_link_read_relocs (abfd, o, NULL, (Elf_Internal_Rela *) NULL, info->keep_memory); if (internal_relocs == NULL) @@ -2138,12 +2078,11 @@ _bfd_mmix_check_all_relocs (abfd, info) number. */ static int -mmix_elf_link_output_symbol_hook (info, name, sym, input_sec, h) - struct bfd_link_info *info ATTRIBUTE_UNUSED; - const char *name ATTRIBUTE_UNUSED; - Elf_Internal_Sym *sym; - asection *input_sec; - struct elf_link_hash_entry *h ATTRIBUTE_UNUSED; +mmix_elf_link_output_symbol_hook (struct bfd_link_info *info ATTRIBUTE_UNUSED, + const char *name ATTRIBUTE_UNUSED, + Elf_Internal_Sym *sym, + asection *input_sec, + struct elf_link_hash_entry *h ATTRIBUTE_UNUSED) { if (input_sec != NULL && input_sec->name != NULL @@ -2203,10 +2142,9 @@ mmix_elf_symbol_processing (abfd, asym) index. */ static bfd_boolean -mmix_elf_section_from_bfd_section (abfd, sec, retval) - bfd * abfd ATTRIBUTE_UNUSED; - asection * sec; - int * retval; +mmix_elf_section_from_bfd_section (bfd * abfd ATTRIBUTE_UNUSED, + asection * sec, + int * retval) { if (strcmp (bfd_get_section_name (abfd, sec), MMIX_REG_SECTION_NAME) == 0) *retval = SHN_REGISTER; @@ -2223,15 +2161,14 @@ mmix_elf_section_from_bfd_section (abfd, sec, retval) symbols, since otherwise having two with the same value would cause them to be "merged", but with the contents serialized. */ -bfd_boolean -mmix_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp) - bfd *abfd; - struct bfd_link_info *info ATTRIBUTE_UNUSED; - Elf_Internal_Sym *sym; - const char **namep ATTRIBUTE_UNUSED; - flagword *flagsp ATTRIBUTE_UNUSED; - asection **secp; - bfd_vma *valp ATTRIBUTE_UNUSED; +static bfd_boolean +mmix_elf_add_symbol_hook (bfd *abfd, + struct bfd_link_info *info ATTRIBUTE_UNUSED, + Elf_Internal_Sym *sym, + const char **namep ATTRIBUTE_UNUSED, + flagword *flagsp ATTRIBUTE_UNUSED, + asection **secp, + bfd_vma *valp ATTRIBUTE_UNUSED) { if (sym->st_shndx == SHN_REGISTER) { @@ -2266,10 +2203,8 @@ mmix_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp) /* We consider symbols matching "L.*:[0-9]+" to be local symbols. */ -bfd_boolean -mmix_elf_is_local_label_name (abfd, name) - bfd *abfd; - const char *name; +static bfd_boolean +mmix_elf_is_local_label_name (bfd *abfd, const char *name) { const char *colpos; int digits; @@ -2297,9 +2232,7 @@ mmix_elf_is_local_label_name (abfd, name) /* We get rid of the register section here. */ bfd_boolean -mmix_elf_final_link (abfd, info) - bfd *abfd; - struct bfd_link_info *info; +mmix_elf_final_link (bfd *abfd, struct bfd_link_info *info) { /* We never output a register section, though we create one for temporary measures. Check that nobody entered contents into it. */ @@ -2346,10 +2279,9 @@ mmix_elf_final_link (abfd, info) section size. This is expected to shrink during linker relaxation. */ static void -mmix_set_relaxable_size (abfd, sec, ptr) - bfd *abfd ATTRIBUTE_UNUSED; - asection *sec; - void *ptr; +mmix_set_relaxable_size (bfd *abfd ATTRIBUTE_UNUSED, + asection *sec, + void *ptr) { struct bfd_link_info *info = ptr; @@ -2374,9 +2306,8 @@ mmix_set_relaxable_size (abfd, sec, ptr) R_MMIX_BASE_PLUS_OFFSET relocs seen by the linker. */ bfd_boolean -_bfd_mmix_before_linker_allocation (abfd, info) - bfd *abfd ATTRIBUTE_UNUSED; - struct bfd_link_info *info; +_bfd_mmix_before_linker_allocation (bfd *abfd ATTRIBUTE_UNUSED, + struct bfd_link_info *info) { asection *bpo_gregs_section; bfd *bpo_greg_owner; @@ -2453,9 +2384,8 @@ _bfd_mmix_before_linker_allocation (abfd, info) calculated at this point; we just move the contents into place here. */ bfd_boolean -_bfd_mmix_after_linker_allocation (abfd, link_info) - bfd *abfd ATTRIBUTE_UNUSED; - struct bfd_link_info *link_info; +_bfd_mmix_after_linker_allocation (bfd *abfd ATTRIBUTE_UNUSED, + struct bfd_link_info *link_info) { asection *bpo_gregs_section; bfd *bpo_greg_owner; @@ -2526,9 +2456,7 @@ _bfd_mmix_after_linker_allocation (abfd, link_info) value. */ static int -bpo_reloc_request_sort_fn (p1, p2) - const PTR p1; - const PTR p2; +bpo_reloc_request_sort_fn (const void * p1, const void * p2) { const struct bpo_reloc_request *r1 = (const struct bpo_reloc_request *) p1; const struct bpo_reloc_request *r2 = (const struct bpo_reloc_request *) p2; @@ -2619,11 +2547,10 @@ mmix_dump_bpo_gregs (link_info, pf) Symbol- and reloc-reading infrastructure copied from elf-m10200.c. */ static bfd_boolean -mmix_elf_relax_section (abfd, sec, link_info, again) - bfd *abfd; - asection *sec; - struct bfd_link_info *link_info; - bfd_boolean *again; +mmix_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; @@ -2669,7 +2596,7 @@ mmix_elf_relax_section (abfd, sec, link_info, again) /* Get a copy of the native relocations. */ internal_relocs - = _bfd_elf_link_read_relocs (abfd, sec, (PTR) NULL, + = _bfd_elf_link_read_relocs (abfd, sec, NULL, (Elf_Internal_Rela *) NULL, link_info->keep_memory); if (internal_relocs == NULL) @@ -2873,7 +2800,7 @@ mmix_elf_relax_section (abfd, sec, link_info, again) gregdata->n_remaining_bpo_relocs_this_relaxation_round = gregdata->n_bpo_relocs; - qsort ((PTR) gregdata->reloc_request, + qsort (gregdata->reloc_request, gregdata->n_max_bpo_relocs, sizeof (struct bpo_reloc_request), bpo_reloc_request_sort_fn); |