| Index: bfd/elf64-alpha.c
|
| diff --git a/bfd/elf64-alpha.c b/bfd/elf64-alpha.c
|
| index 94ea6858d5bdd22abd5a393e8bf0762ab52d7a42..40e4bfb318c5abc31fb19f5b9786cc0a98bd7cf5 100644
|
| --- a/bfd/elf64-alpha.c
|
| +++ b/bfd/elf64-alpha.c
|
| @@ -1,6 +1,7 @@
|
| /* Alpha specific support for 64-bit ELF
|
| Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
|
| - 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
|
| + 2006, 2007, 2008, 2009, 2010, 2011, 2012
|
| + Free Software Foundation, Inc.
|
| Contributed by Richard Henderson <rth@tamu.edu>.
|
|
|
| This file is part of BFD, the Binary File Descriptor library.
|
| @@ -210,7 +211,7 @@ struct alpha_elf_link_hash_table
|
| #define alpha_elf_link_hash_traverse(table, func, info) \
|
| (elf_link_hash_traverse \
|
| (&(table)->root, \
|
| - (bfd_boolean (*) (struct elf_link_hash_entry *, PTR)) (func), \
|
| + (bfd_boolean (*) (struct elf_link_hash_entry *, void *)) (func), \
|
| (info)))
|
|
|
| /* Get the Alpha ELF linker hash table from a link_info structure. */
|
| @@ -356,7 +357,7 @@ elf64_alpha_object_p (bfd *abfd)
|
| static bfd_reloc_status_type
|
| elf64_alpha_reloc_nil (bfd *abfd ATTRIBUTE_UNUSED, arelent *reloc,
|
| asymbol *sym ATTRIBUTE_UNUSED,
|
| - PTR data ATTRIBUTE_UNUSED, asection *sec,
|
| + void * data ATTRIBUTE_UNUSED, asection *sec,
|
| bfd *output_bfd, char **error_message ATTRIBUTE_UNUSED)
|
| {
|
| if (output_bfd)
|
| @@ -369,7 +370,7 @@ elf64_alpha_reloc_nil (bfd *abfd ATTRIBUTE_UNUSED, arelent *reloc,
|
| static bfd_reloc_status_type
|
| elf64_alpha_reloc_bad (bfd *abfd ATTRIBUTE_UNUSED, arelent *reloc,
|
| asymbol *sym ATTRIBUTE_UNUSED,
|
| - PTR data ATTRIBUTE_UNUSED, asection *sec,
|
| + void * data ATTRIBUTE_UNUSED, asection *sec,
|
| bfd *output_bfd, char **error_message ATTRIBUTE_UNUSED)
|
| {
|
| if (output_bfd)
|
| @@ -421,7 +422,7 @@ elf64_alpha_do_reloc_gpdisp (bfd *abfd, bfd_vma gpdisp, bfd_byte *p_ldah,
|
|
|
| static bfd_reloc_status_type
|
| elf64_alpha_reloc_gpdisp (bfd *abfd, arelent *reloc_entry,
|
| - asymbol *sym ATTRIBUTE_UNUSED, PTR data,
|
| + asymbol *sym ATTRIBUTE_UNUSED, void * data,
|
| asection *input_section, bfd *output_bfd,
|
| char **err_msg)
|
| {
|
| @@ -1376,17 +1377,17 @@ elf64_alpha_read_ecoff_info (bfd *abfd, asection *section,
|
| }
|
|
|
| READ (line, cbLineOffset, cbLine, sizeof (unsigned char), unsigned char *);
|
| - READ (external_dnr, cbDnOffset, idnMax, swap->external_dnr_size, PTR);
|
| - READ (external_pdr, cbPdOffset, ipdMax, swap->external_pdr_size, PTR);
|
| - READ (external_sym, cbSymOffset, isymMax, swap->external_sym_size, PTR);
|
| - READ (external_opt, cbOptOffset, ioptMax, swap->external_opt_size, PTR);
|
| + READ (external_dnr, cbDnOffset, idnMax, swap->external_dnr_size, void *);
|
| + READ (external_pdr, cbPdOffset, ipdMax, swap->external_pdr_size, void *);
|
| + READ (external_sym, cbSymOffset, isymMax, swap->external_sym_size, void *);
|
| + READ (external_opt, cbOptOffset, ioptMax, swap->external_opt_size, void *);
|
| READ (external_aux, cbAuxOffset, iauxMax, sizeof (union aux_ext),
|
| union aux_ext *);
|
| READ (ss, cbSsOffset, issMax, sizeof (char), char *);
|
| READ (ssext, cbSsExtOffset, issExtMax, sizeof (char), char *);
|
| - READ (external_fdr, cbFdOffset, ifdMax, swap->external_fdr_size, PTR);
|
| - READ (external_rfd, cbRfdOffset, crfd, swap->external_rfd_size, PTR);
|
| - READ (external_ext, cbExtOffset, iextMax, swap->external_ext_size, PTR);
|
| + READ (external_fdr, cbFdOffset, ifdMax, swap->external_fdr_size, void *);
|
| + READ (external_rfd, cbRfdOffset, crfd, swap->external_rfd_size, void *);
|
| + READ (external_ext, cbExtOffset, iextMax, swap->external_ext_size, void *);
|
| #undef READ
|
|
|
| debug->fdr = NULL;
|
| @@ -1506,7 +1507,7 @@ elf64_alpha_find_nearest_line (bfd *abfd, asection *section, asymbol **symbols,
|
| fraw_end = (fraw_src
|
| + fi->d.symbolic_header.ifdMax * external_fdr_size);
|
| for (; fraw_src < fraw_end; fraw_src += external_fdr_size, fdr_ptr++)
|
| - (*swap->swap_fdr_in) (abfd, (PTR) fraw_src, fdr_ptr);
|
| + (*swap->swap_fdr_in) (abfd, fraw_src, fdr_ptr);
|
|
|
| elf_tdata (abfd)->find_line_info = fi;
|
|
|
| @@ -1548,7 +1549,7 @@ struct extsym_info
|
| };
|
|
|
| static bfd_boolean
|
| -elf64_alpha_output_extsym (struct alpha_elf_link_hash_entry *h, PTR data)
|
| +elf64_alpha_output_extsym (struct alpha_elf_link_hash_entry *h, void * data)
|
| {
|
| struct extsym_info *einfo = (struct extsym_info *) data;
|
| bfd_boolean strip;
|
| @@ -2102,7 +2103,7 @@ elf64_alpha_adjust_dynamic_symbol (struct bfd_link_info *info,
|
| {
|
| h->needs_plt = TRUE;
|
|
|
| - s = bfd_get_section_by_name(dynobj, ".plt");
|
| + s = bfd_get_linker_section (dynobj, ".plt");
|
| if (!s && !elf64_alpha_create_dynamic_sections (dynobj, info))
|
| return FALSE;
|
|
|
| @@ -2391,7 +2392,7 @@ elf64_alpha_merge_gots (bfd *a, bfd *b)
|
|
|
| static bfd_boolean
|
| elf64_alpha_calc_got_offsets_for_symbol (struct alpha_elf_link_hash_entry *h,
|
| - PTR arg ATTRIBUTE_UNUSED)
|
| + void * arg ATTRIBUTE_UNUSED)
|
| {
|
| struct alpha_elf_got_entry *gotent;
|
|
|
| @@ -2543,7 +2544,8 @@ elf64_alpha_size_got_sections (struct bfd_link_info *info)
|
| }
|
|
|
| static bfd_boolean
|
| -elf64_alpha_size_plt_section_1 (struct alpha_elf_link_hash_entry *h, PTR data)
|
| +elf64_alpha_size_plt_section_1 (struct alpha_elf_link_hash_entry *h,
|
| + void * data)
|
| {
|
| asection *splt = (asection *) data;
|
| struct alpha_elf_got_entry *gotent;
|
| @@ -2588,7 +2590,7 @@ elf64_alpha_size_plt_section (struct bfd_link_info *info)
|
| return;
|
|
|
| dynobj = elf_hash_table(info)->dynobj;
|
| - splt = bfd_get_section_by_name (dynobj, ".plt");
|
| + splt = bfd_get_linker_section (dynobj, ".plt");
|
| if (splt == NULL)
|
| return;
|
|
|
| @@ -2598,7 +2600,7 @@ elf64_alpha_size_plt_section (struct bfd_link_info *info)
|
| elf64_alpha_size_plt_section_1, splt);
|
|
|
| /* Every plt entry requires a JMP_SLOT relocation. */
|
| - spltrel = bfd_get_section_by_name (dynobj, ".rela.plt");
|
| + spltrel = bfd_get_linker_section (dynobj, ".rela.plt");
|
| entries = 0;
|
| if (splt->size)
|
| {
|
| @@ -2614,7 +2616,7 @@ elf64_alpha_size_plt_section (struct bfd_link_info *info)
|
| entire contents of the .got.plt section. */
|
| if (elf64_alpha_use_secureplt)
|
| {
|
| - sgotplt = bfd_get_section_by_name (dynobj, ".got.plt");
|
| + sgotplt = bfd_get_linker_section (dynobj, ".got.plt");
|
| sgotplt->size = entries ? 16 : 0;
|
| }
|
| }
|
| @@ -2773,7 +2775,7 @@ elf64_alpha_size_rela_got_1 (struct alpha_elf_link_hash_entry *h,
|
| if (entries > 0)
|
| {
|
| bfd *dynobj = elf_hash_table(info)->dynobj;
|
| - asection *srel = bfd_get_section_by_name (dynobj, ".rela.got");
|
| + asection *srel = bfd_get_linker_section (dynobj, ".rela.got");
|
| BFD_ASSERT (srel != NULL);
|
| srel->size += sizeof (Elf64_External_Rela) * entries;
|
| }
|
| @@ -2823,7 +2825,7 @@ elf64_alpha_size_rela_got_section (struct bfd_link_info *info)
|
| }
|
|
|
| dynobj = elf_hash_table(info)->dynobj;
|
| - srel = bfd_get_section_by_name (dynobj, ".rela.got");
|
| + srel = bfd_get_linker_section (dynobj, ".rela.got");
|
| if (!srel)
|
| {
|
| BFD_ASSERT (entries == 0);
|
| @@ -2859,7 +2861,7 @@ elf64_alpha_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
|
| /* Set the contents of the .interp section to the interpreter. */
|
| if (info->executable)
|
| {
|
| - s = bfd_get_section_by_name (dynobj, ".interp");
|
| + s = bfd_get_linker_section (dynobj, ".interp");
|
| BFD_ASSERT (s != NULL);
|
| s->size = sizeof ELF_DYNAMIC_INTERPRETER;
|
| s->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER;
|
| @@ -3169,7 +3171,7 @@ elf64_alpha_relax_opt_call (struct alpha_relax_info *info, bfd_vma symval)
|
| else
|
| {
|
| tsec_relocs = (_bfd_elf_link_read_relocs
|
| - (info->abfd, info->tsec, (PTR) NULL,
|
| + (info->abfd, info->tsec, NULL,
|
| (Elf_Internal_Rela *) NULL,
|
| info->link_info->keep_memory));
|
| if (tsec_relocs == NULL)
|
| @@ -3754,7 +3756,7 @@ elf64_alpha_relax_section (bfd *abfd, asection *sec,
|
|
|
| /* Load the relocations for this section. */
|
| internal_relocs = (_bfd_elf_link_read_relocs
|
| - (abfd, sec, (PTR) NULL, (Elf_Internal_Rela *) NULL,
|
| + (abfd, sec, NULL, (Elf_Internal_Rela *) NULL,
|
| link_info->keep_memory));
|
| if (internal_relocs == NULL)
|
| return FALSE;
|
| @@ -4107,10 +4109,10 @@ elf64_alpha_relocate_section_r (bfd *output_bfd ATTRIBUTE_UNUSED,
|
| sec = h->root.u.def.section;
|
| }
|
|
|
| - if (sec != NULL && elf_discarded_section (sec))
|
| + if (sec != NULL && discarded_section (sec))
|
| RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
|
| - rel, relend,
|
| - elf64_alpha_howto_table + r_type,
|
| + rel, 1, relend,
|
| + elf64_alpha_howto_table + r_type, 0,
|
| contents);
|
|
|
| if (sym != NULL && ELF_ST_TYPE (sym->st_info) == STT_SECTION)
|
| @@ -4154,7 +4156,7 @@ elf64_alpha_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
|
|
|
| dynobj = elf_hash_table (info)->dynobj;
|
| if (dynobj)
|
| - srelgot = bfd_get_section_by_name (dynobj, ".rela.got");
|
| + srelgot = bfd_get_linker_section (dynobj, ".rela.got");
|
| else
|
| srelgot = NULL;
|
|
|
| @@ -4165,7 +4167,7 @@ elf64_alpha_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
|
| (input_bfd, elf_elfheader(input_bfd)->e_shstrndx,
|
| _bfd_elf_single_rel_hdr (input_section)->sh_name));
|
| BFD_ASSERT(section_name != NULL);
|
| - srel = bfd_get_section_by_name (dynobj, section_name);
|
| + srel = bfd_get_linker_section (dynobj, section_name);
|
| }
|
| else
|
| srel = NULL;
|
| @@ -4265,7 +4267,7 @@ elf64_alpha_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
|
| unless it has been done already. */
|
| if ((sec->flags & SEC_MERGE)
|
| && ELF_ST_TYPE (sym->st_info) == STT_SECTION
|
| - && sec->sec_info_type == ELF_INFO_TYPE_MERGE
|
| + && sec->sec_info_type == SEC_INFO_TYPE_MERGE
|
| && gotent
|
| && !gotent->reloc_xlated)
|
| {
|
| @@ -4316,9 +4318,9 @@ elf64_alpha_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
|
| gotent = h->got_entries;
|
| }
|
|
|
| - if (sec != NULL && elf_discarded_section (sec))
|
| + if (sec != NULL && discarded_section (sec))
|
| RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
|
| - rel, relend, howto, contents);
|
| + rel, 1, relend, howto, 0, contents);
|
|
|
| addend = rel->r_addend;
|
| value += addend;
|
| @@ -4727,7 +4729,7 @@ elf64_alpha_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
|
|
|
| if (r_symndx < symtab_hdr->sh_info
|
| && sec != NULL && howto->pc_relative
|
| - && elf_discarded_section (sec))
|
| + && discarded_section (sec))
|
| break;
|
|
|
| if (h != NULL)
|
| @@ -4781,9 +4783,9 @@ elf64_alpha_finish_dynamic_symbol (bfd *output_bfd, struct bfd_link_info *info,
|
|
|
| BFD_ASSERT (h->dynindx != -1);
|
|
|
| - splt = bfd_get_section_by_name (dynobj, ".plt");
|
| + splt = bfd_get_linker_section (dynobj, ".plt");
|
| BFD_ASSERT (splt != NULL);
|
| - srel = bfd_get_section_by_name (dynobj, ".rela.plt");
|
| + srel = bfd_get_linker_section (dynobj, ".rela.plt");
|
| BFD_ASSERT (srel != NULL);
|
|
|
| for (gotent = ah->got_entries; gotent ; gotent = gotent->next)
|
| @@ -4853,7 +4855,7 @@ elf64_alpha_finish_dynamic_symbol (bfd *output_bfd, struct bfd_link_info *info,
|
| asection *srel;
|
| struct alpha_elf_got_entry *gotent;
|
|
|
| - srel = bfd_get_section_by_name (dynobj, ".rela.got");
|
| + srel = bfd_get_linker_section (dynobj, ".rela.got");
|
| BFD_ASSERT (srel != NULL);
|
|
|
| for (gotent = ((struct alpha_elf_link_hash_entry *) h)->got_entries;
|
| @@ -4918,7 +4920,7 @@ elf64_alpha_finish_dynamic_sections (bfd *output_bfd,
|
| asection *sdyn;
|
|
|
| dynobj = elf_hash_table (info)->dynobj;
|
| - sdyn = bfd_get_section_by_name (dynobj, ".dynamic");
|
| + sdyn = bfd_get_linker_section (dynobj, ".dynamic");
|
|
|
| if (elf_hash_table (info)->dynamic_sections_created)
|
| {
|
| @@ -4926,8 +4928,8 @@ elf64_alpha_finish_dynamic_sections (bfd *output_bfd,
|
| Elf64_External_Dyn *dyncon, *dynconend;
|
| bfd_vma plt_vma, gotplt_vma;
|
|
|
| - splt = bfd_get_section_by_name (dynobj, ".plt");
|
| - srelaplt = bfd_get_section_by_name (output_bfd, ".rela.plt");
|
| + splt = bfd_get_linker_section (dynobj, ".plt");
|
| + srelaplt = bfd_get_linker_section (output_bfd, ".rela.plt");
|
| BFD_ASSERT (splt != NULL && sdyn != NULL);
|
|
|
| plt_vma = splt->output_section->vma + splt->output_offset;
|
| @@ -4935,7 +4937,7 @@ elf64_alpha_finish_dynamic_sections (bfd *output_bfd,
|
| gotplt_vma = 0;
|
| if (elf64_alpha_use_secureplt)
|
| {
|
| - sgotplt = bfd_get_section_by_name (dynobj, ".got.plt");
|
| + sgotplt = bfd_get_linker_section (dynobj, ".got.plt");
|
| BFD_ASSERT (sgotplt != NULL);
|
| if (sgotplt->size > 0)
|
| gotplt_vma = sgotplt->output_section->vma + sgotplt->output_offset;
|
| @@ -5102,7 +5104,7 @@ elf64_alpha_final_link (bfd *abfd, struct bfd_link_info *info)
|
| debug.external_ext = debug.external_ext_end = NULL;
|
|
|
| mdebug_handle = bfd_ecoff_debug_init (abfd, &debug, swap, info);
|
| - if (mdebug_handle == (PTR) NULL)
|
| + if (mdebug_handle == NULL)
|
| return FALSE;
|
|
|
| if (1)
|
| @@ -5206,7 +5208,7 @@ elf64_alpha_final_link (bfd *abfd, struct bfd_link_info *info)
|
| const char *name;
|
| struct alpha_elf_link_hash_entry *h;
|
|
|
| - (*input_swap->swap_ext_in) (input_bfd, (PTR) eraw_src, &ext);
|
| + (*input_swap->swap_ext_in) (input_bfd, eraw_src, &ext);
|
| if (ext.asym.sc == scNil
|
| || ext.asym.sc == scUndefined
|
| || ext.asym.sc == scSUndefined)
|
| @@ -5253,7 +5255,7 @@ elf64_alpha_final_link (bfd *abfd, struct bfd_link_info *info)
|
| einfo.failed = FALSE;
|
| elf_link_hash_traverse (elf_hash_table (info),
|
| elf64_alpha_output_extsym,
|
| - (PTR) &einfo);
|
| + &einfo);
|
| if (einfo.failed)
|
| return FALSE;
|
|
|
|
|