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/coff-mips.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/coff-mips.c')
-rw-r--r-- | bfd/coff-mips.c | 227 |
1 files changed, 85 insertions, 142 deletions
diff --git a/bfd/coff-mips.c b/bfd/coff-mips.c index 4048ca8..cdcdde2 100644 --- a/bfd/coff-mips.c +++ b/bfd/coff-mips.c @@ -1,6 +1,6 @@ /* BFD back-end for MIPS Extended-Coff files. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2011 + 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2011, 2012 Free Software Foundation, Inc. Original version by Per Bothner. Full support added by Ian Lance Taylor, ian@cygnus.com. @@ -35,37 +35,19 @@ #include "libecoff.h" /* Prototypes for static functions. */ +static bfd_reloc_status_type +mips_generic_reloc + (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); +static bfd_reloc_status_type +mips_refhi_reloc + (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); +static bfd_reloc_status_type +mips_reflo_reloc + (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); +static bfd_reloc_status_type +mips_gprel_reloc + (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); -static bfd_boolean mips_ecoff_bad_format_hook - PARAMS ((bfd *abfd, PTR filehdr)); -static void mips_ecoff_swap_reloc_in - PARAMS ((bfd *, PTR, struct internal_reloc *)); -static void mips_ecoff_swap_reloc_out - PARAMS ((bfd *, const struct internal_reloc *, PTR)); -static void mips_adjust_reloc_in - PARAMS ((bfd *, const struct internal_reloc *, arelent *)); -static void mips_adjust_reloc_out - PARAMS ((bfd *, const arelent *, struct internal_reloc *)); -static bfd_reloc_status_type mips_generic_reloc - PARAMS ((bfd *abfd, arelent *reloc, asymbol *symbol, PTR data, - asection *section, bfd *output_bfd, char **error)); -static bfd_reloc_status_type mips_refhi_reloc - PARAMS ((bfd *abfd, arelent *reloc, asymbol *symbol, PTR data, - asection *section, bfd *output_bfd, char **error)); -static bfd_reloc_status_type mips_reflo_reloc - PARAMS ((bfd *abfd, arelent *reloc, asymbol *symbol, PTR data, - asection *section, bfd *output_bfd, char **error)); -static bfd_reloc_status_type mips_gprel_reloc - PARAMS ((bfd *abfd, arelent *reloc, asymbol *symbol, PTR data, - asection *section, bfd *output_bfd, char **error)); -static void mips_relocate_hi - PARAMS ((struct internal_reloc *refhi, struct internal_reloc *reflo, - bfd *input_bfd, asection *input_section, bfd_byte *contents, - bfd_vma relocation)); -static bfd_boolean mips_relocate_section - PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, PTR)); -static reloc_howto_type *mips_bfd_reloc_type_lookup - PARAMS ((bfd *, bfd_reloc_code_real_type)); /* ECOFF has COFF sections, but the debugging information is stored in a completely different format. ECOFF targets use some of the @@ -79,12 +61,12 @@ static reloc_howto_type *mips_bfd_reloc_type_lookup #define NO_COFF_RELOCS #define NO_COFF_SYMBOLS #define NO_COFF_LINENOS -#define coff_swap_filehdr_in mips_ecoff_swap_filehdr_in +#define coff_swap_filehdr_in mips_ecoff_swap_filehdr_in #define coff_swap_filehdr_out mips_ecoff_swap_filehdr_out -#define coff_swap_aouthdr_in mips_ecoff_swap_aouthdr_in +#define coff_swap_aouthdr_in mips_ecoff_swap_aouthdr_in #define coff_swap_aouthdr_out mips_ecoff_swap_aouthdr_out -#define coff_swap_scnhdr_in mips_ecoff_swap_scnhdr_in -#define coff_swap_scnhdr_out mips_ecoff_swap_scnhdr_out +#define coff_swap_scnhdr_in mips_ecoff_swap_scnhdr_in +#define coff_swap_scnhdr_out mips_ecoff_swap_scnhdr_out #include "coffswap.h" @@ -253,9 +235,7 @@ static reloc_howto_type mips_howto_table[] = /* See whether the magic number matches. */ static bfd_boolean -mips_ecoff_bad_format_hook (abfd, filehdr) - bfd *abfd; - PTR filehdr; +mips_ecoff_bad_format_hook (bfd * abfd, void * filehdr) { struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr; @@ -287,10 +267,9 @@ mips_ecoff_bad_format_hook (abfd, filehdr) /* Swap a reloc in. */ static void -mips_ecoff_swap_reloc_in (abfd, ext_ptr, intern) - bfd *abfd; - PTR ext_ptr; - struct internal_reloc *intern; +mips_ecoff_swap_reloc_in (bfd * abfd, + void * ext_ptr, + struct internal_reloc *intern) { const RELOC *ext = (RELOC *) ext_ptr; @@ -326,10 +305,9 @@ mips_ecoff_swap_reloc_in (abfd, ext_ptr, intern) /* Swap a reloc out. */ static void -mips_ecoff_swap_reloc_out (abfd, intern, dst) - bfd *abfd; - const struct internal_reloc *intern; - PTR dst; +mips_ecoff_swap_reloc_out (bfd * abfd, + const struct internal_reloc * intern, + void * dst) { RELOC *ext = (RELOC *) dst; long r_symndx; @@ -367,10 +345,9 @@ mips_ecoff_swap_reloc_out (abfd, intern, dst) this backend routine. It must fill in the howto field. */ static void -mips_adjust_reloc_in (abfd, intern, rptr) - bfd *abfd; - const struct internal_reloc *intern; - arelent *rptr; +mips_adjust_reloc_in (bfd *abfd, + const struct internal_reloc *intern, + arelent *rptr) { if (intern->r_type > MIPS_R_PCREL16) abort (); @@ -392,10 +369,9 @@ mips_adjust_reloc_in (abfd, intern, rptr) are needed for MIPS. */ static void -mips_adjust_reloc_out (abfd, rel, intern) - bfd *abfd ATTRIBUTE_UNUSED; - const arelent *rel ATTRIBUTE_UNUSED; - struct internal_reloc *intern ATTRIBUTE_UNUSED; +mips_adjust_reloc_out (bfd *abfd ATTRIBUTE_UNUSED, + const arelent *rel ATTRIBUTE_UNUSED, + struct internal_reloc *intern ATTRIBUTE_UNUSED) { } @@ -411,20 +387,13 @@ mips_adjust_reloc_out (abfd, rel, intern) relocatable output against an external symbol. */ static bfd_reloc_status_type -mips_generic_reloc (abfd, - reloc_entry, - symbol, - data, - input_section, - output_bfd, - error_message) - bfd *abfd ATTRIBUTE_UNUSED; - arelent *reloc_entry; - asymbol *symbol; - PTR data ATTRIBUTE_UNUSED; - asection *input_section; - bfd *output_bfd; - char **error_message ATTRIBUTE_UNUSED; +mips_generic_reloc (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry, + asymbol *symbol, + void * data ATTRIBUTE_UNUSED, + asection *input_section, + bfd *output_bfd, + char **error_message ATTRIBUTE_UNUSED) { if (output_bfd != (bfd *) NULL && (symbol->flags & BSF_SECTION_SYM) == 0 @@ -458,20 +427,13 @@ struct mips_hi static struct mips_hi *mips_refhi_list; static bfd_reloc_status_type -mips_refhi_reloc (abfd, - reloc_entry, - symbol, - data, - input_section, - output_bfd, - error_message) - bfd *abfd ATTRIBUTE_UNUSED; - arelent *reloc_entry; - asymbol *symbol; - PTR data; - asection *input_section; - bfd *output_bfd; - char **error_message ATTRIBUTE_UNUSED; +mips_refhi_reloc (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry, + asymbol *symbol, + void * data, + asection *input_section, + bfd *output_bfd, + char **error_message ATTRIBUTE_UNUSED) { bfd_reloc_status_type ret; bfd_vma relocation; @@ -524,20 +486,13 @@ mips_refhi_reloc (abfd, relocation described above. */ static bfd_reloc_status_type -mips_reflo_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; +mips_reflo_reloc (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry, + asymbol *symbol, + void * data, + asection *input_section, + bfd *output_bfd, + char **error_message ATTRIBUTE_UNUSED) { if (mips_refhi_list != NULL) { @@ -592,20 +547,13 @@ mips_reflo_reloc (abfd, the offset from the gp register. */ static bfd_reloc_status_type -mips_gprel_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; +mips_gprel_reloc (bfd *abfd ATTRIBUTE_UNUSED, + arelent *reloc_entry, + asymbol *symbol, + void * data, + asection *input_section, + bfd *output_bfd, + char **error_message ATTRIBUTE_UNUSED) { bfd_boolean relocatable; bfd_vma gp; @@ -732,9 +680,8 @@ mips_gprel_reloc (abfd, /* Get the howto structure for a generic reloc type. */ static reloc_howto_type * -mips_bfd_reloc_type_lookup (abfd, code) - bfd *abfd ATTRIBUTE_UNUSED; - bfd_reloc_code_real_type code; +mips_bfd_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, + bfd_reloc_code_real_type code) { int mips_type; @@ -794,14 +741,12 @@ mips_bfd_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, instructions. */ static void -mips_relocate_hi (refhi, reflo, input_bfd, input_section, contents, - relocation) - struct internal_reloc *refhi; - struct internal_reloc *reflo; - bfd *input_bfd; - asection *input_section; - bfd_byte *contents; - bfd_vma relocation; +mips_relocate_hi (struct internal_reloc *refhi, + struct internal_reloc *reflo, + bfd *input_bfd, + asection *input_section, + bfd_byte *contents, + bfd_vma relocation) { unsigned long insn; unsigned long val; @@ -841,14 +786,12 @@ mips_relocate_hi (refhi, reflo, input_bfd, input_section, contents, /* Relocate a section while linking a MIPS ECOFF file. */ static bfd_boolean -mips_relocate_section (output_bfd, info, input_bfd, input_section, - contents, external_relocs) - bfd *output_bfd; - struct bfd_link_info *info; - bfd *input_bfd; - asection *input_section; - bfd_byte *contents; - PTR external_relocs; +mips_relocate_section (bfd *output_bfd, + struct bfd_link_info *info, + bfd *input_bfd, + asection *input_section, + bfd_byte *contents, + void * external_relocs) { asection **symndx_to_section; struct ecoff_link_hash_entry **sym_hashes; @@ -928,7 +871,7 @@ mips_relocate_section (output_bfd, info, input_bfd, input_section, bfd_reloc_status_type r; if (! got_lo) - mips_ecoff_swap_reloc_in (input_bfd, (PTR) ext_rel, &int_rel); + mips_ecoff_swap_reloc_in (input_bfd, ext_rel, &int_rel); else { int_rel = lo_int_rel; @@ -951,7 +894,7 @@ mips_relocate_section (output_bfd, info, input_bfd, input_section, lo_ext_rel < ext_rel_end; lo_ext_rel++) { - mips_ecoff_swap_reloc_in (input_bfd, (PTR) lo_ext_rel, + mips_ecoff_swap_reloc_in (input_bfd, lo_ext_rel, &lo_int_rel); if (lo_int_rel.r_type != int_rel.r_type) break; @@ -1190,7 +1133,7 @@ mips_relocate_section (output_bfd, info, input_bfd, input_section, - input_section->vma); /* Save the changed reloc information. */ - mips_ecoff_swap_reloc_out (input_bfd, &int_rel, (PTR) ext_rel); + mips_ecoff_swap_reloc_out (input_bfd, &int_rel, ext_rel); } else { @@ -1303,13 +1246,13 @@ static const struct ecoff_backend_data mips_ecoff_backend_data = { /* COFF backend structure. */ { - (void (*) PARAMS ((bfd *,PTR,int,int,int,int,PTR))) bfd_void, /* aux_in */ - (void (*) PARAMS ((bfd *,PTR,PTR))) bfd_void, /* sym_in */ - (void (*) PARAMS ((bfd *,PTR,PTR))) bfd_void, /* lineno_in */ - (unsigned (*) PARAMS ((bfd *,PTR,int,int,int,int,PTR)))bfd_void,/*aux_out*/ - (unsigned (*) PARAMS ((bfd *,PTR,PTR))) bfd_void, /* sym_out */ - (unsigned (*) PARAMS ((bfd *,PTR,PTR))) bfd_void, /* lineno_out */ - (unsigned (*) PARAMS ((bfd *,PTR,PTR))) bfd_void, /* reloc_out */ + (void (*) (bfd *,void *,int,int,int,int,void *)) bfd_void, /* aux_in */ + (void (*) (bfd *,void *,void *)) bfd_void, /* sym_in */ + (void (*) (bfd *,void *,void *)) bfd_void, /* lineno_in */ + (unsigned (*) (bfd *,void *,int,int,int,int,void *)) bfd_void,/*aux_out*/ + (unsigned (*) (bfd *,void *,void *)) bfd_void, /* sym_out */ + (unsigned (*) (bfd *,void *,void *)) bfd_void, /* lineno_out */ + (unsigned (*) (bfd *,void *,void *)) bfd_void, /* reloc_out */ mips_ecoff_swap_filehdr_out, mips_ecoff_swap_aouthdr_out, mips_ecoff_swap_scnhdr_out, FILHSZ, AOUTSZ, SCNHSZ, 0, 0, 0, 0, FILNMLEN, TRUE, @@ -1466,7 +1409,7 @@ const bfd_target ecoff_little_vec = & ecoff_big_vec, - (PTR) &mips_ecoff_backend_data + & mips_ecoff_backend_data }; const bfd_target ecoff_big_vec = @@ -1510,7 +1453,7 @@ const bfd_target ecoff_big_vec = & ecoff_little_vec, - (PTR) &mips_ecoff_backend_data + & mips_ecoff_backend_data }; const bfd_target ecoff_biglittle_vec = @@ -1555,5 +1498,5 @@ const bfd_target ecoff_biglittle_vec = NULL, - (PTR) &mips_ecoff_backend_data + & mips_ecoff_backend_data }; |