diff options
author | H.J. Lu <hjl@lucon.org> | 2007-08-22 16:01:12 +0000 |
---|---|---|
committer | H.J. Lu <hjl@lucon.org> | 2007-08-22 16:01:12 +0000 |
commit | 4e499bf8e358ad22cee2b268f0f29c1f18b1871d (patch) | |
tree | 48588aa803eef4c5fbb6a70e0b70103b8947eeeb /bfd/elfxx-ia64.c | |
parent | e86826b765777da484ef1121d37a2c8c37117133 (diff) | |
download | gdb-4e499bf8e358ad22cee2b268f0f29c1f18b1871d.tar.gz |
2007-08-22 H.J. Lu <hongjiu.lu@intel.com>
* elfxx-ia64.c: Convert to ISO C90 prototypes.
(elfNN_hpux_backend_section_from_bfd_section): Make it static.
Diffstat (limited to 'bfd/elfxx-ia64.c')
-rw-r--r-- | bfd/elfxx-ia64.c | 531 |
1 files changed, 155 insertions, 376 deletions
diff --git a/bfd/elfxx-ia64.c b/bfd/elfxx-ia64.c index eb9a6203a9e..d08abbe36fc 100644 --- a/bfd/elfxx-ia64.c +++ b/bfd/elfxx-ia64.c @@ -190,172 +190,45 @@ struct elfNN_ia64_allocate_data #define elfNN_ia64_hash_table(p) \ ((struct elfNN_ia64_link_hash_table *) ((p)->hash)) -static bfd_reloc_status_type elfNN_ia64_reloc - PARAMS ((bfd *abfd, arelent *reloc, asymbol *sym, PTR data, - asection *input_section, bfd *output_bfd, char **error_message)); -static reloc_howto_type * lookup_howto - PARAMS ((unsigned int rtype)); -static reloc_howto_type *elfNN_ia64_reloc_type_lookup - PARAMS ((bfd *abfd, bfd_reloc_code_real_type bfd_code)); -static void elfNN_ia64_info_to_howto - PARAMS ((bfd *abfd, arelent *bfd_reloc, Elf_Internal_Rela *elf_reloc)); -static bfd_boolean elfNN_ia64_relax_section - PARAMS((bfd *abfd, asection *sec, struct bfd_link_info *link_info, - bfd_boolean *again)); -static void elfNN_ia64_relax_ldxmov - PARAMS((bfd_byte *contents, bfd_vma off)); -static bfd_boolean is_unwind_section_name - PARAMS ((bfd *abfd, const char *)); -static bfd_boolean elfNN_ia64_section_flags - PARAMS ((flagword *, const Elf_Internal_Shdr *)); -static bfd_boolean elfNN_ia64_fake_sections - PARAMS ((bfd *abfd, Elf_Internal_Shdr *hdr, asection *sec)); -static void elfNN_ia64_final_write_processing - PARAMS ((bfd *abfd, bfd_boolean linker)); -static bfd_boolean elfNN_ia64_add_symbol_hook - PARAMS ((bfd *abfd, struct bfd_link_info *info, Elf_Internal_Sym *sym, - const char **namep, flagword *flagsp, asection **secp, - bfd_vma *valp)); -static bfd_boolean elfNN_ia64_is_local_label_name - PARAMS ((bfd *abfd, const char *name)); +static struct elfNN_ia64_dyn_sym_info * get_dyn_sym_info + (struct elfNN_ia64_link_hash_table *ia64_info, + struct elf_link_hash_entry *h, + bfd *abfd, const Elf_Internal_Rela *rel, bfd_boolean create); static bfd_boolean elfNN_ia64_dynamic_symbol_p - PARAMS ((struct elf_link_hash_entry *h, struct bfd_link_info *info, int)); -static struct bfd_hash_entry *elfNN_ia64_new_elf_hash_entry - PARAMS ((struct bfd_hash_entry *entry, struct bfd_hash_table *table, - const char *string)); -static void elfNN_ia64_hash_copy_indirect - PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, - struct elf_link_hash_entry *)); -static void elfNN_ia64_hash_hide_symbol - PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean)); -static hashval_t elfNN_ia64_local_htab_hash PARAMS ((const void *)); -static int elfNN_ia64_local_htab_eq PARAMS ((const void *ptr1, - const void *ptr2)); -static struct bfd_link_hash_table *elfNN_ia64_hash_table_create - PARAMS ((bfd *abfd)); -static void elfNN_ia64_hash_table_free - PARAMS ((struct bfd_link_hash_table *hash)); -static bfd_boolean elfNN_ia64_global_dyn_sym_thunk - PARAMS ((struct bfd_hash_entry *, PTR)); -static int elfNN_ia64_local_dyn_sym_thunk - PARAMS ((void **, PTR)); + (struct elf_link_hash_entry *h, struct bfd_link_info *info, int); +static bfd_reloc_status_type elfNN_ia64_install_value + (bfd_byte *hit_addr, bfd_vma val, unsigned int r_type); +static bfd_boolean elfNN_ia64_choose_gp + (bfd *abfd, struct bfd_link_info *info); +static void elfNN_ia64_relax_ldxmov + (bfd_byte *contents, bfd_vma off); static void elfNN_ia64_dyn_sym_traverse - PARAMS ((struct elfNN_ia64_link_hash_table *ia64_info, - bfd_boolean (*func) (struct elfNN_ia64_dyn_sym_info *, PTR), - PTR info)); -static bfd_boolean elfNN_ia64_create_dynamic_sections - PARAMS ((bfd *abfd, struct bfd_link_info *info)); -static struct elfNN_ia64_local_hash_entry * get_local_sym_hash - PARAMS ((struct elfNN_ia64_link_hash_table *ia64_info, - bfd *abfd, const Elf_Internal_Rela *rel, bfd_boolean create)); -static struct elfNN_ia64_dyn_sym_info * get_dyn_sym_info - PARAMS ((struct elfNN_ia64_link_hash_table *ia64_info, - struct elf_link_hash_entry *h, - bfd *abfd, const Elf_Internal_Rela *rel, bfd_boolean create)); -static asection *get_got - PARAMS ((bfd *abfd, struct bfd_link_info *info, - struct elfNN_ia64_link_hash_table *ia64_info)); -static asection *get_fptr - PARAMS ((bfd *abfd, struct bfd_link_info *info, - struct elfNN_ia64_link_hash_table *ia64_info)); -static asection *get_pltoff - PARAMS ((bfd *abfd, struct bfd_link_info *info, - struct elfNN_ia64_link_hash_table *ia64_info)); -static asection *get_reloc_section - PARAMS ((bfd *abfd, struct elfNN_ia64_link_hash_table *ia64_info, - asection *sec, bfd_boolean create)); -static bfd_boolean elfNN_ia64_check_relocs - PARAMS ((bfd *abfd, struct bfd_link_info *info, asection *sec, - const Elf_Internal_Rela *relocs)); -static bfd_boolean elfNN_ia64_adjust_dynamic_symbol - PARAMS ((struct bfd_link_info *info, struct elf_link_hash_entry *h)); -static long global_sym_index - PARAMS ((struct elf_link_hash_entry *h)); -static bfd_boolean allocate_fptr - PARAMS ((struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data)); + (struct elfNN_ia64_link_hash_table *ia64_info, + bfd_boolean (*func) (struct elfNN_ia64_dyn_sym_info *, PTR), + PTR info); static bfd_boolean allocate_global_data_got - PARAMS ((struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data)); + (struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data); static bfd_boolean allocate_global_fptr_got - PARAMS ((struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data)); + (struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data); static bfd_boolean allocate_local_got - PARAMS ((struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data)); -static bfd_boolean allocate_pltoff_entries - PARAMS ((struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data)); -static bfd_boolean allocate_plt_entries - PARAMS ((struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data)); -static bfd_boolean allocate_plt2_entries - PARAMS ((struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data)); -static bfd_boolean allocate_dynrel_entries - PARAMS ((struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data)); -static bfd_boolean elfNN_ia64_size_dynamic_sections - PARAMS ((bfd *output_bfd, struct bfd_link_info *info)); -static bfd_reloc_status_type elfNN_ia64_install_value - PARAMS ((bfd_byte *hit_addr, bfd_vma val, unsigned int r_type)); -static void elfNN_ia64_install_dyn_reloc - PARAMS ((bfd *abfd, struct bfd_link_info *info, asection *sec, - asection *srel, bfd_vma offset, unsigned int type, - long dynindx, bfd_vma addend)); -static bfd_vma set_got_entry - PARAMS ((bfd *abfd, struct bfd_link_info *info, - struct elfNN_ia64_dyn_sym_info *dyn_i, long dynindx, - bfd_vma addend, bfd_vma value, unsigned int dyn_r_type)); -static bfd_vma set_fptr_entry - PARAMS ((bfd *abfd, struct bfd_link_info *info, - struct elfNN_ia64_dyn_sym_info *dyn_i, - bfd_vma value)); -static bfd_vma set_pltoff_entry - PARAMS ((bfd *abfd, struct bfd_link_info *info, - struct elfNN_ia64_dyn_sym_info *dyn_i, - bfd_vma value, bfd_boolean)); -static bfd_vma elfNN_ia64_tprel_base - PARAMS ((struct bfd_link_info *info)); -static bfd_vma elfNN_ia64_dtprel_base - PARAMS ((struct bfd_link_info *info)); -static int elfNN_ia64_unwind_entry_compare - PARAMS ((const PTR, const PTR)); -static bfd_boolean elfNN_ia64_choose_gp - PARAMS ((bfd *abfd, struct bfd_link_info *info)); -static bfd_boolean elfNN_ia64_final_link - PARAMS ((bfd *abfd, struct bfd_link_info *info)); -static bfd_boolean elfNN_ia64_relocate_section - PARAMS ((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)); -static bfd_boolean elfNN_ia64_finish_dynamic_symbol - PARAMS ((bfd *output_bfd, struct bfd_link_info *info, - struct elf_link_hash_entry *h, Elf_Internal_Sym *sym)); -static bfd_boolean elfNN_ia64_finish_dynamic_sections - PARAMS ((bfd *abfd, struct bfd_link_info *info)); -static bfd_boolean elfNN_ia64_set_private_flags - PARAMS ((bfd *abfd, flagword flags)); -static bfd_boolean elfNN_ia64_merge_private_bfd_data - PARAMS ((bfd *ibfd, bfd *obfd)); -static bfd_boolean elfNN_ia64_print_private_bfd_data - PARAMS ((bfd *abfd, PTR ptr)); -static enum elf_reloc_type_class elfNN_ia64_reloc_type_class - PARAMS ((const Elf_Internal_Rela *)); + (struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data); static bfd_boolean elfNN_ia64_hpux_vec - PARAMS ((const bfd_target *vec)); -static void elfNN_hpux_post_process_headers - PARAMS ((bfd *abfd, struct bfd_link_info *info)); -bfd_boolean elfNN_hpux_backend_section_from_bfd_section - PARAMS ((bfd *abfd, asection *sec, int *retval)); + (const bfd_target *vec); +static bfd_boolean allocate_dynrel_entries + (struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data); +static asection *get_pltoff + (bfd *abfd, struct bfd_link_info *info, + struct elfNN_ia64_link_hash_table *ia64_info); /* ia64-specific relocation. */ /* Perform a relocation. Not much to do here as all the hard work is done in elfNN_ia64_final_link_relocate. */ static bfd_reloc_status_type -elfNN_ia64_reloc (abfd, reloc, sym, data, input_section, - output_bfd, error_message) - bfd *abfd ATTRIBUTE_UNUSED; - arelent *reloc; - asymbol *sym ATTRIBUTE_UNUSED; - PTR data ATTRIBUTE_UNUSED; - asection *input_section; - bfd *output_bfd; - char **error_message; +elfNN_ia64_reloc (bfd *abfd ATTRIBUTE_UNUSED, arelent *reloc, + asymbol *sym ATTRIBUTE_UNUSED, + PTR data ATTRIBUTE_UNUSED, asection *input_section, + bfd *output_bfd, char **error_message) { if (output_bfd) { @@ -481,8 +354,7 @@ static unsigned char elf_code_to_howto_index[R_IA64_MAX_RELOC_CODE + 1]; /* Given a BFD reloc type, return the matching HOWTO structure. */ static reloc_howto_type * -lookup_howto (rtype) - unsigned int rtype; +lookup_howto (unsigned int rtype) { static int inited = 0; int i; @@ -505,9 +377,8 @@ lookup_howto (rtype) } static reloc_howto_type* -elfNN_ia64_reloc_type_lookup (abfd, bfd_code) - bfd *abfd ATTRIBUTE_UNUSED; - bfd_reloc_code_real_type bfd_code; +elfNN_ia64_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, + bfd_reloc_code_real_type bfd_code) { unsigned int rtype; @@ -633,10 +504,9 @@ elfNN_ia64_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, /* Given a ELF reloc, return the matching HOWTO structure. */ static void -elfNN_ia64_info_to_howto (abfd, bfd_reloc, elf_reloc) - bfd *abfd ATTRIBUTE_UNUSED; - arelent *bfd_reloc; - Elf_Internal_Rela *elf_reloc; +elfNN_ia64_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, + arelent *bfd_reloc, + Elf_Internal_Rela *elf_reloc) { bfd_reloc->howto = lookup_howto ((unsigned int) ELFNN_R_TYPE (elf_reloc->r_info)); @@ -886,11 +756,9 @@ elfNN_ia64_relax_brl (bfd_byte *contents, bfd_vma off) /* These functions do relaxation for IA-64 ELF. */ static bfd_boolean -elfNN_ia64_relax_section (abfd, sec, link_info, again) - bfd *abfd; - asection *sec; - struct bfd_link_info *link_info; - bfd_boolean *again; +elfNN_ia64_relax_section (bfd *abfd, asection *sec, + struct bfd_link_info *link_info, + bfd_boolean *again) { struct one_fixup { @@ -1407,9 +1275,7 @@ elfNN_ia64_relax_section (abfd, sec, link_info, again) #undef skip_relax_pass_1 static void -elfNN_ia64_relax_ldxmov (contents, off) - bfd_byte *contents; - bfd_vma off; +elfNN_ia64_relax_ldxmov (bfd_byte *contents, bfd_vma off) { int shift, r1, r3; bfd_vma dword, insn; @@ -1497,9 +1363,8 @@ elfNN_ia64_section_from_shdr (bfd *abfd, flag. */ static bfd_boolean -elfNN_ia64_section_flags (flags, hdr) - flagword *flags; - const Elf_Internal_Shdr *hdr; +elfNN_ia64_section_flags (flagword *flags, + const Elf_Internal_Shdr *hdr) { if (hdr->sh_flags & SHF_IA_64_SHORT) *flags |= SEC_SMALL_DATA; @@ -1511,10 +1376,8 @@ elfNN_ia64_section_flags (flags, hdr) section name, which is a hack, but ought to work. */ static bfd_boolean -elfNN_ia64_fake_sections (abfd, hdr, sec) - bfd *abfd ATTRIBUTE_UNUSED; - Elf_Internal_Shdr *hdr; - asection *sec; +elfNN_ia64_fake_sections (bfd *abfd, Elf_Internal_Shdr *hdr, + asection *sec) { register const char *name; @@ -1565,9 +1428,8 @@ elfNN_ia64_fake_sections (abfd, hdr, sec) object file. */ static void -elfNN_ia64_final_write_processing (abfd, linker) - bfd *abfd; - bfd_boolean linker ATTRIBUTE_UNUSED; +elfNN_ia64_final_write_processing (bfd *abfd, + bfd_boolean linker ATTRIBUTE_UNUSED) { Elf_Internal_Shdr *hdr; asection *s; @@ -1605,14 +1467,10 @@ elfNN_ia64_final_write_processing (abfd, linker) file. We use it to put .comm items in .sbss, and not .bss. */ static bfd_boolean -elfNN_ia64_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp) - bfd *abfd; - struct bfd_link_info *info; - Elf_Internal_Sym *sym; - const char **namep ATTRIBUTE_UNUSED; - flagword *flagsp ATTRIBUTE_UNUSED; - asection **secp; - bfd_vma *valp; +elfNN_ia64_add_symbol_hook (bfd *abfd, struct bfd_link_info *info, + Elf_Internal_Sym *sym, + const char **namep, flagword *flagsp, + asection **secp, bfd_vma *valp) { if (sym->st_shndx == SHN_COMMON && !info->relocatable @@ -1795,9 +1653,8 @@ elfNN_ia64_modify_program_headers (bfd *abfd, '.' are local. */ static bfd_boolean -elfNN_ia64_is_local_label_name (abfd, name) - bfd *abfd ATTRIBUTE_UNUSED; - const char *name; +elfNN_ia64_is_local_label_name (bfd *abfd ATTRIBUTE_UNUSED, + const char *name) { return name[0] == '.'; } @@ -1805,10 +1662,8 @@ elfNN_ia64_is_local_label_name (abfd, name) /* Should we do dynamic things to this symbol? */ static bfd_boolean -elfNN_ia64_dynamic_symbol_p (h, info, r_type) - struct elf_link_hash_entry *h; - struct bfd_link_info *info; - int r_type; +elfNN_ia64_dynamic_symbol_p (struct elf_link_hash_entry *h, + struct bfd_link_info *info, int r_type) { bfd_boolean ignore_protected = ((r_type & 0xf8) == 0x40 /* FPTR relocs */ @@ -1818,10 +1673,9 @@ elfNN_ia64_dynamic_symbol_p (h, info, r_type) } static struct bfd_hash_entry* -elfNN_ia64_new_elf_hash_entry (entry, table, string) - struct bfd_hash_entry *entry; - struct bfd_hash_table *table; - const char *string; +elfNN_ia64_new_elf_hash_entry (struct bfd_hash_entry *entry, + struct bfd_hash_table *table, + const char *string) { struct elfNN_ia64_link_hash_entry *ret; ret = (struct elfNN_ia64_link_hash_entry *) entry; @@ -1847,9 +1701,9 @@ elfNN_ia64_new_elf_hash_entry (entry, table, string) } static void -elfNN_ia64_hash_copy_indirect (info, xdir, xind) - struct bfd_link_info *info; - struct elf_link_hash_entry *xdir, *xind; +elfNN_ia64_hash_copy_indirect (struct bfd_link_info *info, + struct elf_link_hash_entry *xdir, + struct elf_link_hash_entry *xind) { struct elfNN_ia64_link_hash_entry *dir, *ind; @@ -1910,10 +1764,9 @@ elfNN_ia64_hash_copy_indirect (info, xdir, xind) } static void -elfNN_ia64_hash_hide_symbol (info, xh, force_local) - struct bfd_link_info *info; - struct elf_link_hash_entry *xh; - bfd_boolean force_local; +elfNN_ia64_hash_hide_symbol (struct bfd_link_info *info, + struct elf_link_hash_entry *xh, + bfd_boolean force_local) { struct elfNN_ia64_link_hash_entry *h; struct elfNN_ia64_dyn_sym_info *dyn_i; @@ -1935,8 +1788,7 @@ elfNN_ia64_hash_hide_symbol (info, xh, force_local) /* Compute a hash of a local hash entry. */ static hashval_t -elfNN_ia64_local_htab_hash (ptr) - const void *ptr; +elfNN_ia64_local_htab_hash (const void *ptr) { struct elfNN_ia64_local_hash_entry *entry = (struct elfNN_ia64_local_hash_entry *) ptr; @@ -1948,8 +1800,7 @@ elfNN_ia64_local_htab_hash (ptr) /* Compare local hash entries. */ static int -elfNN_ia64_local_htab_eq (ptr1, ptr2) - const void *ptr1, *ptr2; +elfNN_ia64_local_htab_eq (const void *ptr1, const void *ptr2) { struct elfNN_ia64_local_hash_entry *entry1 = (struct elfNN_ia64_local_hash_entry *) ptr1; @@ -1964,8 +1815,7 @@ elfNN_ia64_local_htab_eq (ptr1, ptr2) linker (without using static variables). */ static struct bfd_link_hash_table* -elfNN_ia64_hash_table_create (abfd) - bfd *abfd; +elfNN_ia64_hash_table_create (bfd *abfd) { struct elfNN_ia64_link_hash_table *ret; @@ -2041,8 +1891,7 @@ elfNN_ia64_local_dyn_info_free (void **slot, /* Destroy IA-64 linker hash table. */ static void -elfNN_ia64_hash_table_free (hash) - struct bfd_link_hash_table *hash; +elfNN_ia64_hash_table_free (struct bfd_link_hash_table *hash) { struct elfNN_ia64_link_hash_table *ia64_info = (struct elfNN_ia64_link_hash_table *) hash; @@ -2063,14 +1912,13 @@ elfNN_ia64_hash_table_free (hash) struct elfNN_ia64_dyn_sym_traverse_data { - bfd_boolean (*func) PARAMS ((struct elfNN_ia64_dyn_sym_info *, PTR)); + bfd_boolean (*func) (struct elfNN_ia64_dyn_sym_info *, PTR); PTR data; }; static bfd_boolean -elfNN_ia64_global_dyn_sym_thunk (xentry, xdata) - struct bfd_hash_entry *xentry; - PTR xdata; +elfNN_ia64_global_dyn_sym_thunk (struct bfd_hash_entry *xentry, + PTR xdata) { struct elfNN_ia64_link_hash_entry *entry = (struct elfNN_ia64_link_hash_entry *) xentry; @@ -2091,9 +1939,7 @@ elfNN_ia64_global_dyn_sym_thunk (xentry, xdata) } static bfd_boolean -elfNN_ia64_local_dyn_sym_thunk (slot, xdata) - void **slot; - PTR xdata; +elfNN_ia64_local_dyn_sym_thunk (void **slot, PTR xdata) { struct elfNN_ia64_local_hash_entry *entry = (struct elfNN_ia64_local_hash_entry *) *slot; @@ -2111,10 +1957,9 @@ elfNN_ia64_local_dyn_sym_thunk (slot, xdata) } static void -elfNN_ia64_dyn_sym_traverse (ia64_info, func, data) - struct elfNN_ia64_link_hash_table *ia64_info; - bfd_boolean (*func) PARAMS ((struct elfNN_ia64_dyn_sym_info *, PTR)); - PTR data; +elfNN_ia64_dyn_sym_traverse (struct elfNN_ia64_link_hash_table *ia64_info, + bfd_boolean (*func) (struct elfNN_ia64_dyn_sym_info *, PTR), + PTR data) { struct elfNN_ia64_dyn_sym_traverse_data xdata; @@ -2128,9 +1973,8 @@ elfNN_ia64_dyn_sym_traverse (ia64_info, func, data) } static bfd_boolean -elfNN_ia64_create_dynamic_sections (abfd, info) - bfd *abfd; - struct bfd_link_info *info; +elfNN_ia64_create_dynamic_sections (bfd *abfd, + struct bfd_link_info *info) { struct elfNN_ia64_link_hash_table *ia64_info; asection *s; @@ -2180,11 +2024,9 @@ elfNN_ia64_create_dynamic_sections (abfd, info) /* Find and/or create a hash entry for local symbol. */ static struct elfNN_ia64_local_hash_entry * -get_local_sym_hash (ia64_info, abfd, rel, create) - struct elfNN_ia64_link_hash_table *ia64_info; - bfd *abfd; - const Elf_Internal_Rela *rel; - bfd_boolean create; +get_local_sym_hash (struct elfNN_ia64_link_hash_table *ia64_info, + bfd *abfd, const Elf_Internal_Rela *rel, + bfd_boolean create) { struct elfNN_ia64_local_hash_entry e, *ret; asection *sec = abfd->sections; @@ -2412,12 +2254,9 @@ sort_dyn_sym_info (struct elfNN_ia64_dyn_sym_info *info, requires a copy which is O(N), but this only happens once. */ static struct elfNN_ia64_dyn_sym_info * -get_dyn_sym_info (ia64_info, h, abfd, rel, create) - struct elfNN_ia64_link_hash_table *ia64_info; - struct elf_link_hash_entry *h; - bfd *abfd; - const Elf_Internal_Rela *rel; - bfd_boolean create; +get_dyn_sym_info (struct elfNN_ia64_link_hash_table *ia64_info, + struct elf_link_hash_entry *h, bfd *abfd, + const Elf_Internal_Rela *rel, bfd_boolean create) { struct elfNN_ia64_dyn_sym_info **info_p, *info, *dyn_i, key; unsigned int *count_p, *sorted_count_p, *size_p; @@ -2554,10 +2393,8 @@ has_space: } static asection * -get_got (abfd, info, ia64_info) - bfd *abfd; - struct bfd_link_info *info; - struct elfNN_ia64_link_hash_table *ia64_info; +get_got (bfd *abfd, struct bfd_link_info *info, + struct elfNN_ia64_link_hash_table *ia64_info) { asection *got; bfd *dynobj; @@ -2594,10 +2431,8 @@ get_got (abfd, info, ia64_info) of a procedure, thus ensuring a unique address for each procedure. */ static asection * -get_fptr (abfd, info, ia64_info) - bfd *abfd; - struct bfd_link_info *info; - struct elfNN_ia64_link_hash_table *ia64_info; +get_fptr (bfd *abfd, struct bfd_link_info *info, + struct elfNN_ia64_link_hash_table *ia64_info) { asection *fptr; bfd *dynobj; @@ -2650,10 +2485,8 @@ get_fptr (abfd, info, ia64_info) } static asection * -get_pltoff (abfd, info, ia64_info) - bfd *abfd; - struct bfd_link_info *info ATTRIBUTE_UNUSED; - struct elfNN_ia64_link_hash_table *ia64_info; +get_pltoff (bfd *abfd, struct bfd_link_info *info ATTRIBUTE_UNUSED, + struct elfNN_ia64_link_hash_table *ia64_info) { asection *pltoff; bfd *dynobj; @@ -2687,11 +2520,9 @@ get_pltoff (abfd, info, ia64_info) } static asection * -get_reloc_section (abfd, ia64_info, sec, create) - bfd *abfd; - struct elfNN_ia64_link_hash_table *ia64_info; - asection *sec; - bfd_boolean create; +get_reloc_section (bfd *abfd, + struct elfNN_ia64_link_hash_table *ia64_info, + asection *sec, bfd_boolean create) { const char *srel_name; asection *srel; @@ -2762,11 +2593,9 @@ count_dyn_reloc (bfd *abfd, struct elfNN_ia64_dyn_sym_info *dyn_i, } static bfd_boolean -elfNN_ia64_check_relocs (abfd, info, sec, relocs) - bfd *abfd; - struct bfd_link_info *info; - asection *sec; - const Elf_Internal_Rela *relocs; +elfNN_ia64_check_relocs (bfd *abfd, struct bfd_link_info *info, + asection *sec, + const Elf_Internal_Rela *relocs) { struct elfNN_ia64_link_hash_table *ia64_info; const Elf_Internal_Rela *relend; @@ -3222,9 +3051,8 @@ elfNN_ia64_check_relocs (abfd, info, sec, relocs) external GOT entries first. */ static bfd_boolean -allocate_global_data_got (dyn_i, data) - struct elfNN_ia64_dyn_sym_info *dyn_i; - PTR data; +allocate_global_data_got (struct elfNN_ia64_dyn_sym_info *dyn_i, + PTR data) { struct elfNN_ia64_allocate_data *x = (struct elfNN_ia64_allocate_data *)data; @@ -3271,9 +3099,8 @@ allocate_global_data_got (dyn_i, data) /* Next, allocate all the GOT entries used by LTOFF_FPTR relocs. */ static bfd_boolean -allocate_global_fptr_got (dyn_i, data) - struct elfNN_ia64_dyn_sym_info *dyn_i; - PTR data; +allocate_global_fptr_got (struct elfNN_ia64_dyn_sym_info *dyn_i, + PTR data) { struct elfNN_ia64_allocate_data *x = (struct elfNN_ia64_allocate_data *)data; @@ -3290,9 +3117,8 @@ allocate_global_fptr_got (dyn_i, data) /* Lastly, allocate all the GOT entries for local data. */ static bfd_boolean -allocate_local_got (dyn_i, data) - struct elfNN_ia64_dyn_sym_info *dyn_i; - PTR data; +allocate_local_got (struct elfNN_ia64_dyn_sym_info *dyn_i, + PTR data) { struct elfNN_ia64_allocate_data *x = (struct elfNN_ia64_allocate_data *)data; @@ -3308,8 +3134,7 @@ allocate_local_got (dyn_i, data) /* Search for the index of a global symbol in it's defining object file. */ static long -global_sym_index (h) - struct elf_link_hash_entry *h; +global_sym_index (struct elf_link_hash_entry *h) { struct elf_link_hash_entry **p; bfd *obj; @@ -3328,9 +3153,7 @@ global_sym_index (h) in a main executable that is not exported. */ static bfd_boolean -allocate_fptr (dyn_i, data) - struct elfNN_ia64_dyn_sym_info *dyn_i; - PTR data; +allocate_fptr (struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data) { struct elfNN_ia64_allocate_data *x = (struct elfNN_ia64_allocate_data *)data; @@ -3376,9 +3199,8 @@ allocate_fptr (dyn_i, data) /* Allocate all the minimal PLT entries. */ static bfd_boolean -allocate_plt_entries (dyn_i, data) - struct elfNN_ia64_dyn_sym_info *dyn_i; - PTR data; +allocate_plt_entries (struct elfNN_ia64_dyn_sym_info *dyn_i, + PTR data) { struct elfNN_ia64_allocate_data *x = (struct elfNN_ia64_allocate_data *)data; @@ -3414,9 +3236,8 @@ allocate_plt_entries (dyn_i, data) /* Allocate all the full PLT entries. */ static bfd_boolean -allocate_plt2_entries (dyn_i, data) - struct elfNN_ia64_dyn_sym_info *dyn_i; - PTR data; +allocate_plt2_entries (struct elfNN_ia64_dyn_sym_info *dyn_i, + PTR data) { struct elfNN_ia64_allocate_data *x = (struct elfNN_ia64_allocate_data *)data; @@ -3442,9 +3263,8 @@ allocate_plt2_entries (dyn_i, data) ??? Relaxation might be able to determine that they are. */ static bfd_boolean -allocate_pltoff_entries (dyn_i, data) - struct elfNN_ia64_dyn_sym_info *dyn_i; - PTR data; +allocate_pltoff_entries (struct elfNN_ia64_dyn_sym_info *dyn_i, + PTR data) { struct elfNN_ia64_allocate_data *x = (struct elfNN_ia64_allocate_data *)data; @@ -3460,9 +3280,8 @@ allocate_pltoff_entries (dyn_i, data) to be dynamic. */ static bfd_boolean -allocate_dynrel_entries (dyn_i, data) - struct elfNN_ia64_dyn_sym_info *dyn_i; - PTR data; +allocate_dynrel_entries (struct elfNN_ia64_dyn_sym_info *dyn_i, + PTR data) { struct elfNN_ia64_allocate_data *x = (struct elfNN_ia64_allocate_data *)data; struct elfNN_ia64_link_hash_table *ia64_info; @@ -3577,9 +3396,8 @@ allocate_dynrel_entries (dyn_i, data) } static bfd_boolean -elfNN_ia64_adjust_dynamic_symbol (info, h) - struct bfd_link_info *info ATTRIBUTE_UNUSED; - struct elf_link_hash_entry *h; +elfNN_ia64_adjust_dynamic_symbol (struct bfd_link_info *info ATTRIBUTE_UNUSED, + struct elf_link_hash_entry *h) { /* ??? Undefined symbols with PLT entries should be re-defined to be the PLT entry. */ @@ -3607,9 +3425,8 @@ elfNN_ia64_adjust_dynamic_symbol (info, h) } static bfd_boolean -elfNN_ia64_size_dynamic_sections (output_bfd, info) - bfd *output_bfd ATTRIBUTE_UNUSED; - struct bfd_link_info *info; +elfNN_ia64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, + struct bfd_link_info *info) { struct elfNN_ia64_allocate_data data; struct elfNN_ia64_link_hash_table *ia64_info; @@ -3857,10 +3674,8 @@ elfNN_ia64_size_dynamic_sections (output_bfd, info) } static bfd_reloc_status_type -elfNN_ia64_install_value (hit_addr, v, r_type) - bfd_byte *hit_addr; - bfd_vma v; - unsigned int r_type; +elfNN_ia64_install_value (bfd_byte *hit_addr, bfd_vma v, + unsigned int r_type) { const struct ia64_operand *op; int bigendian = 0, shift = 0; @@ -4082,16 +3897,10 @@ elfNN_ia64_install_value (hit_addr, v, r_type) } static void -elfNN_ia64_install_dyn_reloc (abfd, info, sec, srel, offset, type, - dynindx, addend) - bfd *abfd; - struct bfd_link_info *info; - asection *sec; - asection *srel; - bfd_vma offset; - unsigned int type; - long dynindx; - bfd_vma addend; +elfNN_ia64_install_dyn_reloc (bfd *abfd, struct bfd_link_info *info, + asection *sec, asection *srel, + bfd_vma offset, unsigned int type, + long dynindx, bfd_vma addend) { Elf_Internal_Rela outrel; bfd_byte *loc; @@ -4121,14 +3930,10 @@ elfNN_ia64_install_dyn_reloc (abfd, info, sec, srel, offset, type, and return the gp-relative address of the linkage table entry. */ static bfd_vma -set_got_entry (abfd, info, dyn_i, dynindx, addend, value, dyn_r_type) - bfd *abfd; - struct bfd_link_info *info; - struct elfNN_ia64_dyn_sym_info *dyn_i; - long dynindx; - bfd_vma addend; - bfd_vma value; - unsigned int dyn_r_type; +set_got_entry (bfd *abfd, struct bfd_link_info *info, + struct elfNN_ia64_dyn_sym_info *dyn_i, + long dynindx, bfd_vma addend, bfd_vma value, + unsigned int dyn_r_type) { struct elfNN_ia64_link_hash_table *ia64_info; asection *got_sec; @@ -4265,11 +4070,9 @@ set_got_entry (abfd, info, dyn_i, dynindx, addend, value, dyn_r_type) address and its global pointer. Return the descriptor's address. */ static bfd_vma -set_fptr_entry (abfd, info, dyn_i, value) - bfd *abfd; - struct bfd_link_info *info; - struct elfNN_ia64_dyn_sym_info *dyn_i; - bfd_vma value; +set_fptr_entry (bfd *abfd, struct bfd_link_info *info, + struct elfNN_ia64_dyn_sym_info *dyn_i, + bfd_vma value) { struct elfNN_ia64_link_hash_table *ia64_info; asection *fptr_sec; @@ -4317,12 +4120,9 @@ set_fptr_entry (abfd, info, dyn_i, value) and its global pointer. Return the descriptor's address. */ static bfd_vma -set_pltoff_entry (abfd, info, dyn_i, value, is_plt) - bfd *abfd; - struct bfd_link_info *info; - struct elfNN_ia64_dyn_sym_info *dyn_i; - bfd_vma value; - bfd_boolean is_plt; +set_pltoff_entry (bfd *abfd, struct bfd_link_info *info, + struct elfNN_ia64_dyn_sym_info *dyn_i, + bfd_vma value, bfd_boolean is_plt) { struct elfNN_ia64_link_hash_table *ia64_info; asection *pltoff_sec; @@ -4382,8 +4182,7 @@ set_pltoff_entry (abfd, info, dyn_i, value, is_plt) is assigned offset round(2 * size of pointer, PT_TLS p_align). */ static bfd_vma -elfNN_ia64_tprel_base (info) - struct bfd_link_info *info; +elfNN_ia64_tprel_base (struct bfd_link_info *info) { asection *tls_sec = elf_hash_table (info)->tls_sec; @@ -4397,8 +4196,7 @@ elfNN_ia64_tprel_base (info) This is PT_TLS segment p_vaddr. */ static bfd_vma -elfNN_ia64_dtprel_base (info) - struct bfd_link_info *info; +elfNN_ia64_dtprel_base (struct bfd_link_info *info) { BFD_ASSERT (elf_hash_table (info)->tls_sec != NULL); return elf_hash_table (info)->tls_sec->vma; @@ -4411,9 +4209,7 @@ elfNN_ia64_dtprel_base (info) static bfd *elfNN_ia64_unwind_entry_compare_bfd; static int -elfNN_ia64_unwind_entry_compare (a, b) - const PTR a; - const PTR b; +elfNN_ia64_unwind_entry_compare (const PTR a, const PTR b) { bfd_vma av, bv; @@ -4425,9 +4221,7 @@ elfNN_ia64_unwind_entry_compare (a, b) /* Make sure we've got ourselves a nice fat __gp value. */ static bfd_boolean -elfNN_ia64_choose_gp (abfd, info) - bfd *abfd; - struct bfd_link_info *info; +elfNN_ia64_choose_gp (bfd *abfd, struct bfd_link_info *info) { bfd_vma min_vma = (bfd_vma) -1, max_vma = 0; bfd_vma min_short_vma = min_vma, max_short_vma = 0; @@ -4543,9 +4337,7 @@ elfNN_ia64_choose_gp (abfd, info) } static bfd_boolean -elfNN_ia64_final_link (abfd, info) - bfd *abfd; - struct bfd_link_info *info; +elfNN_ia64_final_link (bfd *abfd, struct bfd_link_info *info) { struct elfNN_ia64_link_hash_table *ia64_info; asection *unwind_output_sec; @@ -4614,16 +4406,14 @@ elfNN_ia64_final_link (abfd, info) } static bfd_boolean -elfNN_ia64_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; +elfNN_ia64_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 elfNN_ia64_link_hash_table *ia64_info; Elf_Internal_Shdr *symtab_hdr; @@ -5337,11 +5127,10 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section, } static bfd_boolean -elfNN_ia64_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; +elfNN_ia64_finish_dynamic_symbol (bfd *output_bfd, + struct bfd_link_info *info, + struct elf_link_hash_entry *h, + Elf_Internal_Sym *sym) { struct elfNN_ia64_link_hash_table *ia64_info; struct elfNN_ia64_dyn_sym_info *dyn_i; @@ -5426,9 +5215,8 @@ elfNN_ia64_finish_dynamic_symbol (output_bfd, info, h, sym) } static bfd_boolean -elfNN_ia64_finish_dynamic_sections (abfd, info) - bfd *abfd; - struct bfd_link_info *info; +elfNN_ia64_finish_dynamic_sections (bfd *abfd, + struct bfd_link_info *info) { struct elfNN_ia64_link_hash_table *ia64_info; bfd *dynobj; @@ -5514,9 +5302,7 @@ elfNN_ia64_finish_dynamic_sections (abfd, info) /* Function to keep IA-64 specific file flags. */ static bfd_boolean -elfNN_ia64_set_private_flags (abfd, flags) - bfd *abfd; - flagword flags; +elfNN_ia64_set_private_flags (bfd *abfd, flagword flags) { BFD_ASSERT (!elf_flags_init (abfd) || elf_elfheader (abfd)->e_flags == flags); @@ -5529,8 +5315,7 @@ elfNN_ia64_set_private_flags (abfd, flags) /* Merge backend specific data from an object file to the output object file when linking. */ static bfd_boolean -elfNN_ia64_merge_private_bfd_data (ibfd, obfd) - bfd *ibfd, *obfd; +elfNN_ia64_merge_private_bfd_data (bfd *ibfd, bfd *obfd) { flagword out_flags; flagword in_flags; @@ -5618,9 +5403,7 @@ elfNN_ia64_merge_private_bfd_data (ibfd, obfd) } static bfd_boolean -elfNN_ia64_print_private_bfd_data (abfd, ptr) - bfd *abfd; - PTR ptr; +elfNN_ia64_print_private_bfd_data (bfd *abfd, PTR ptr) { FILE *file = (FILE *) ptr; flagword flags = elf_elfheader (abfd)->e_flags; @@ -5642,8 +5425,7 @@ elfNN_ia64_print_private_bfd_data (abfd, ptr) } static enum elf_reloc_type_class -elfNN_ia64_reloc_type_class (rela) - const Elf_Internal_Rela *rela; +elfNN_ia64_reloc_type_class (const Elf_Internal_Rela *rela) { switch ((int) ELFNN_R_TYPE (rela->r_info)) { @@ -5770,9 +5552,8 @@ elfNN_ia64_hpux_vec (const bfd_target *vec) } static void -elfNN_hpux_post_process_headers (abfd, info) - bfd *abfd; - struct bfd_link_info *info ATTRIBUTE_UNUSED; +elfNN_hpux_post_process_headers (bfd *abfd, + struct bfd_link_info *info ATTRIBUTE_UNUSED) { Elf_Internal_Ehdr *i_ehdrp = elf_elfheader (abfd); @@ -5780,11 +5561,9 @@ elfNN_hpux_post_process_headers (abfd, info) i_ehdrp->e_ident[EI_ABIVERSION] = 1; } -bfd_boolean -elfNN_hpux_backend_section_from_bfd_section (abfd, sec, retval) - bfd *abfd ATTRIBUTE_UNUSED; - asection *sec; - int *retval; +static bfd_boolean +elfNN_hpux_backend_section_from_bfd_section (bfd *abfd ATTRIBUTE_UNUSED, + asection *sec, int *retval) { if (bfd_is_com_section (sec)) { |