diff options
Diffstat (limited to 'bfd/elf64-sh64.c')
-rw-r--r-- | bfd/elf64-sh64.c | 38 |
1 files changed, 13 insertions, 25 deletions
diff --git a/bfd/elf64-sh64.c b/bfd/elf64-sh64.c index 478197df195..d045d90c66e 100644 --- a/bfd/elf64-sh64.c +++ b/bfd/elf64-sh64.c @@ -1,6 +1,6 @@ /* SuperH SH64-specific support for 64-bit ELF - Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 - Free Software Foundation, Inc. + Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, + 2010 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -89,26 +89,14 @@ struct elf_sh64_link_hash_entry struct elf_sh64_pcrel_relocs_copied *pcrel_relocs_copied; }; -/* sh ELF linker hash table. */ - -struct elf_sh64_link_hash_table -{ - struct elf_link_hash_table root; -}; - /* Traverse an sh ELF linker hash table. */ -#define sh64_elf64_link_hash_traverse(table, func, info) \ - (elf_link_hash_traverse \ - (&(table)->root, \ +#define sh64_elf64_link_hash_traverse(table, func, info) \ + (elf_link_hash_traverse \ + ((table), \ (bfd_boolean (*) (struct elf_link_hash_entry *, void *)) (func), \ (info))) -/* Get the sh ELF linker hash table from a link_info structure. */ - -#define sh64_elf64_hash_table(p) \ - ((struct elf_sh64_link_hash_table *) ((p)->hash)) - static bfd_reloc_status_type sh_elf64_ignore_reloc (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **); static bfd_reloc_status_type sh_elf64_reloc @@ -3084,22 +3072,22 @@ sh64_elf64_link_hash_newfunc (struct bfd_hash_entry *entry, static struct bfd_link_hash_table * sh64_elf64_link_hash_table_create (bfd *abfd) { - struct elf_sh64_link_hash_table *ret; + struct elf_link_hash_table *ret; - ret = ((struct elf_sh64_link_hash_table *) - bfd_malloc (sizeof (struct elf_sh64_link_hash_table))); - if (ret == (struct elf_sh64_link_hash_table *) NULL) + ret = (struct elf_link_hash_table *) bfd_malloc (sizeof (* ret)); + if (ret == (struct elf_link_hash_table *) NULL) return NULL; - if (!_bfd_elf_link_hash_table_init (&ret->root, abfd, + if (!_bfd_elf_link_hash_table_init (ret, abfd, sh64_elf64_link_hash_newfunc, - sizeof (struct elf_sh64_link_hash_entry))) + sizeof (struct elf_sh64_link_hash_entry), + GENERIC_ELF_DATA)) { free (ret); return NULL; } - return &ret->root.root; + return &ret->root; } inline static void @@ -3497,7 +3485,7 @@ sh64_elf64_size_dynamic_sections (bfd *output_bfd, We allocated space for them in the check_relocs routine, but we will not fill them in in the relocate_section routine. */ if (info->shared && info->symbolic) - sh64_elf64_link_hash_traverse (sh64_elf64_hash_table (info), + sh64_elf64_link_hash_traverse (elf_hash_table (info), sh64_elf64_discard_copies, NULL); /* The check_relocs and adjust_dynamic_symbol entry points have |