projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Rename bfd_plugin_uknown to bfd_plugin_unknown
[deliverable/binutils-gdb.git]
/
bfd
/
elf64-sparc.c
diff --git
a/bfd/elf64-sparc.c
b/bfd/elf64-sparc.c
index 82bd93fea8bd4939328042915531ec354143965f..c700b7efa6bc31baf7957163199bef7d3a6e22a1 100644
(file)
--- a/
bfd/elf64-sparc.c
+++ b/
bfd/elf64-sparc.c
@@
-1,7
+1,5
@@
/* SPARC-specific support for 64-bit ELF
/* SPARC-specific support for 64-bit ELF
- Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
- 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
- Free Software Foundation, Inc.
+ Copyright (C) 1993-2016 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
This file is part of BFD, the Binary File Descriptor library.
@@
-57,7
+55,7
@@
elf64_sparc_slurp_one_reloc_table (bfd *abfd, asection *asect,
Elf_Internal_Shdr *rel_hdr,
asymbol **symbols, bfd_boolean dynamic)
{
Elf_Internal_Shdr *rel_hdr,
asymbol **symbols, bfd_boolean dynamic)
{
-
PTR
allocated = NULL;
+
void *
allocated = NULL;
bfd_byte *native_relocs;
arelent *relent;
unsigned int i;
bfd_byte *native_relocs;
arelent *relent;
unsigned int i;
@@
-65,7
+63,7
@@
elf64_sparc_slurp_one_reloc_table (bfd *abfd, asection *asect,
bfd_size_type count;
arelent *relents;
bfd_size_type count;
arelent *relents;
- allocated =
(PTR)
bfd_malloc (rel_hdr->sh_size);
+ allocated = bfd_malloc (rel_hdr->sh_size);
if (allocated == NULL)
goto error_return;
if (allocated == NULL)
goto error_return;
@@
-99,7
+97,9
@@
elf64_sparc_slurp_one_reloc_table (bfd *abfd, asection *asect,
else
relent->address = rela.r_offset - asect->vma;
else
relent->address = rela.r_offset - asect->vma;
- if (ELF64_R_SYM (rela.r_info) == STN_UNDEF)
+ if (ELF64_R_SYM (rela.r_info) == STN_UNDEF
+ /* PR 17512: file: 996185f8. */
+ || ELF64_R_SYM (rela.r_info) > bfd_get_symcount (abfd))
relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
else
{
relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
else
{
@@
-279,7
+279,7
@@
elf64_sparc_canonicalize_dynamic_reloc (bfd *abfd, arelent **storage,
/* Write out the relocs. */
static void
/* Write out the relocs. */
static void
-elf64_sparc_write_relocs (bfd *abfd, asection *sec,
PTR
data)
+elf64_sparc_write_relocs (bfd *abfd, asection *sec,
void *
data)
{
bfd_boolean *failedp = (bfd_boolean *) data;
Elf_Internal_Shdr *rela_hdr;
{
bfd_boolean *failedp = (bfd_boolean *) data;
Elf_Internal_Shdr *rela_hdr;
@@
-330,7
+330,7
@@
elf64_sparc_write_relocs (bfd *abfd, asection *sec, PTR data)
rela_hdr = elf_section_data (sec)->rela.hdr;
rela_hdr->sh_size = rela_hdr->sh_entsize * count;
rela_hdr = elf_section_data (sec)->rela.hdr;
rela_hdr->sh_size = rela_hdr->sh_entsize * count;
- rela_hdr->contents =
(PTR)
bfd_alloc (abfd, rela_hdr->sh_size);
+ rela_hdr->contents = bfd_alloc (abfd, rela_hdr->sh_size);
if (rela_hdr->contents == NULL)
{
*failedp = TRUE;
if (rela_hdr->contents == NULL)
{
*failedp = TRUE;
@@
-426,10
+426,10
@@
elf64_sparc_add_symbol_hook (bfd *abfd, struct bfd_link_info *info,
{
static const char *const stt_types[] = { "NOTYPE", "OBJECT", "FUNCTION" };
{
static const char *const stt_types[] = { "NOTYPE", "OBJECT", "FUNCTION" };
- if (
(abfd->flags & DYNAMIC) == 0
- && (
ELF_ST_TYPE (sym->st_info) == STT_GNU_IFUNC
-
|| ELF_ST_BIND (sym->st_info) == STB_GNU_UNIQUE)
)
- elf_tdata (info->output_bfd)->has_gnu_symbols
= TRUE
;
+ if (
ELF_ST_TYPE (sym->st_info) == STT_GNU_IFUNC
+ && (
abfd->flags & DYNAMIC) == 0
+
&& bfd_get_flavour (info->output_bfd) == bfd_target_elf_flavour
)
+ elf_tdata (info->output_bfd)->has_gnu_symbols
|= elf_gnu_symbol_ifunc
;
if (ELF_ST_TYPE (sym->st_info) == STT_REGISTER)
{
if (ELF_ST_TYPE (sym->st_info) == STT_REGISTER)
{
@@
-545,8
+545,8
@@
elf64_sparc_add_symbol_hook (bfd *abfd, struct bfd_link_info *info,
static bfd_boolean
elf64_sparc_output_arch_syms (bfd *output_bfd ATTRIBUTE_UNUSED,
struct bfd_link_info *info,
static bfd_boolean
elf64_sparc_output_arch_syms (bfd *output_bfd ATTRIBUTE_UNUSED,
struct bfd_link_info *info,
-
PTR
flaginfo,
- int (*func) (
PTR
, const char *,
+
void *
flaginfo,
+ int (*func) (
void *
, const char *,
Elf_Internal_Sym *,
asection *,
struct elf_link_hash_entry *))
Elf_Internal_Sym *,
asection *,
struct elf_link_hash_entry *))
@@
-563,7
+563,7
@@
elf64_sparc_output_arch_syms (bfd *output_bfd ATTRIBUTE_UNUSED,
if (elf_hash_table (info)->dynlocal)
{
bfd * dynobj = elf_hash_table (info)->dynobj;
if (elf_hash_table (info)->dynlocal)
{
bfd * dynobj = elf_hash_table (info)->dynobj;
- asection *dynsymsec = bfd_get_
section_by_name
(dynobj, ".dynsym");
+ asection *dynsymsec = bfd_get_
linker_section
(dynobj, ".dynsym");
struct elf_link_local_dynamic_entry *e;
for (e = elf_hash_table (info)->dynlocal; e ; e = e->next)
struct elf_link_local_dynamic_entry *e;
for (e = elf_hash_table (info)->dynlocal; e ; e = e->next)
@@
-741,7
+741,7
@@
elf64_sparc_fake_sections (bfd *abfd ATTRIBUTE_UNUSED,
/* Print a STT_REGISTER symbol to file FILE. */
static const char *
/* Print a STT_REGISTER symbol to file FILE. */
static const char *
-elf64_sparc_print_symbol_all (bfd *abfd ATTRIBUTE_UNUSED,
PTR
filep,
+elf64_sparc_print_symbol_all (bfd *abfd ATTRIBUTE_UNUSED,
void *
filep,
asymbol *symbol)
{
FILE *file = (FILE *) filep;
asymbol *symbol)
{
FILE *file = (FILE *) filep;
@@
-765,7
+765,9
@@
elf64_sparc_print_symbol_all (bfd *abfd ATTRIBUTE_UNUSED, PTR filep,
}
\f
static enum elf_reloc_type_class
}
\f
static enum elf_reloc_type_class
-elf64_sparc_reloc_type_class (const Elf_Internal_Rela *rela)
+elf64_sparc_reloc_type_class (const struct bfd_link_info *info ATTRIBUTE_UNUSED,
+ const asection *rel_sec ATTRIBUTE_UNUSED,
+ const Elf_Internal_Rela *rela)
{
switch ((int) ELF64_R_TYPE (rela->r_info))
{
{
switch ((int) ELF64_R_TYPE (rela->r_info))
{
@@
-821,7
+823,7
@@
const struct elf_size_info elf64_sparc_size_info =
bfd_elf64_swap_reloca_out
};
bfd_elf64_swap_reloca_out
};
-#define TARGET_BIG_SYM
bfd_elf64_sparc
_vec
+#define TARGET_BIG_SYM
sparc_elf64
_vec
#define TARGET_BIG_NAME "elf64-sparc"
#define ELF_ARCH bfd_arch_sparc
#define ELF_MAXPAGESIZE 0x100000
#define TARGET_BIG_NAME "elf64-sparc"
#define ELF_ARCH bfd_arch_sparc
#define ELF_MAXPAGESIZE 0x100000
@@
-864,8
+866,6
@@
const struct elf_size_info elf64_sparc_size_info =
_bfd_sparc_elf_plt_sym_val
#define bfd_elf64_bfd_link_hash_table_create \
_bfd_sparc_elf_link_hash_table_create
_bfd_sparc_elf_plt_sym_val
#define bfd_elf64_bfd_link_hash_table_create \
_bfd_sparc_elf_link_hash_table_create
-#define bfd_elf64_bfd_link_hash_table_free \
- _bfd_sparc_elf_link_hash_table_free
#define elf_info_to_howto \
_bfd_sparc_elf_info_to_howto
#define elf_backend_copy_indirect_symbol \
#define elf_info_to_howto \
_bfd_sparc_elf_info_to_howto
#define elf_backend_copy_indirect_symbol \
@@
-920,13
+920,11
@@
const struct elf_size_info elf64_sparc_size_info =
/* Section 5.2.4 of the ABI specifies a 256-byte boundary for the table. */
#define elf_backend_plt_alignment 8
/* Section 5.2.4 of the ABI specifies a 256-byte boundary for the table. */
#define elf_backend_plt_alignment 8
-#define elf_backend_post_process_headers _bfd_elf_set_osabi
-
#include "elf64-target.h"
/* FreeBSD support */
#undef TARGET_BIG_SYM
#include "elf64-target.h"
/* FreeBSD support */
#undef TARGET_BIG_SYM
-#define TARGET_BIG_SYM
bfd_elf64_sparc_free
bsd_vec
+#define TARGET_BIG_SYM
sparc_elf64_f
bsd_vec
#undef TARGET_BIG_NAME
#define TARGET_BIG_NAME "elf64-sparc-freebsd"
#undef ELF_OSABI
#undef TARGET_BIG_NAME
#define TARGET_BIG_NAME "elf64-sparc-freebsd"
#undef ELF_OSABI
@@
-940,7
+938,7
@@
const struct elf_size_info elf64_sparc_size_info =
/* Solaris 2. */
#undef TARGET_BIG_SYM
/* Solaris 2. */
#undef TARGET_BIG_SYM
-#define TARGET_BIG_SYM
bfd_elf64_sparc
_sol2_vec
+#define TARGET_BIG_SYM
sparc_elf64
_sol2_vec
#undef TARGET_BIG_NAME
#define TARGET_BIG_NAME "elf64-sparc-sol2"
#undef TARGET_BIG_NAME
#define TARGET_BIG_NAME "elf64-sparc-sol2"
This page took
0.026041 seconds
and
4
git commands to generate.