Browse Source

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.
gdb_6_7-branch
H.J. Lu 19 years ago
parent
commit
eae50df29b
  1. 5
      bfd/ChangeLog
  2. 529
      bfd/elfxx-ia64.c

5
bfd/ChangeLog

@ -1,3 +1,8 @@
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.
2007-08-22 H.J. Lu <hongjiu.lu@intel.com> 2007-08-22 H.J. Lu <hongjiu.lu@intel.com>
* elf64-x86-64.c: Remove trailing whitespace. * elf64-x86-64.c: Remove trailing whitespace.

529
bfd/elfxx-ia64.c

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

Loading…
Cancel
Save