forked from Imagelibrary/binutils-gdb
x86: Add _bfd_x86_elf_gc_mark_hook
Since R_X86_64_GNU_VTINHERIT == R_386_GNU_VTINHERIT and R_X86_64_GNU_VTENTRY == R_386_GNU_VTENTRY, we can share _bfd_x86_elf_gc_mark_hook in elf32-i386.c and elf64-x86-64.c. * elf32-i386.c (elf_i386_gc_mark_hook): Removed. (elf_backend_gc_mark_hook): Likewise. * elf64-x86-64.c (elf_x86_64_gc_mark_hook): Likewise. (elf_backend_gc_mark_hook): Likewise. * elfxx-x86.c (_bfd_x86_elf_gc_mark_hook): New function. * elfxx-x86.h (_bfd_x86_elf_gc_mark_hook): New. (elf_backend_gc_mark_hook): Likewise.
This commit is contained in:
@@ -1974,27 +1974,6 @@ error_return:
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* Return the section that should be marked against GC for a given
|
||||
relocation. */
|
||||
|
||||
static asection *
|
||||
elf_i386_gc_mark_hook (asection *sec,
|
||||
struct bfd_link_info *info,
|
||||
Elf_Internal_Rela *rel,
|
||||
struct elf_link_hash_entry *h,
|
||||
Elf_Internal_Sym *sym)
|
||||
{
|
||||
if (h != NULL)
|
||||
switch (ELF32_R_TYPE (rel->r_info))
|
||||
{
|
||||
case R_386_GNU_VTINHERIT:
|
||||
case R_386_GNU_VTENTRY:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
|
||||
}
|
||||
|
||||
/* Allocate space in .plt, .got and associated reloc sections for
|
||||
dynamic relocs. */
|
||||
|
||||
@@ -5690,7 +5669,6 @@ elf_i386_link_setup_gnu_properties (struct bfd_link_info *info)
|
||||
#define elf_backend_finish_dynamic_sections elf_i386_finish_dynamic_sections
|
||||
#define elf_backend_finish_dynamic_symbol elf_i386_finish_dynamic_symbol
|
||||
#define elf_backend_output_arch_local_syms elf_i386_output_arch_local_syms
|
||||
#define elf_backend_gc_mark_hook elf_i386_gc_mark_hook
|
||||
#define elf_backend_grok_prstatus elf_i386_grok_prstatus
|
||||
#define elf_backend_grok_psinfo elf_i386_grok_psinfo
|
||||
#define elf_backend_reloc_type_class elf_i386_reloc_type_class
|
||||
|
||||
Reference in New Issue
Block a user