aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2014-12-04 14:19:41 -0800
committerH.J. Lu <hjl.tools@gmail.com>2014-12-04 16:55:39 -0800
commit3972882e52d7199000bb5dfc753a86aa296a567a (patch)
treef12cdd28c4f0d470e3db7b5cb17c82824d5631e6 /gdb
parent82cf9cb2653b39c426f330854c64028eab4cb65d (diff)
downloadgdb-3972882e52d7199000bb5dfc753a86aa296a567a.zip
gdb-3972882e52d7199000bb5dfc753a86aa296a567a.tar.gz
gdb-3972882e52d7199000bb5dfc753a86aa296a567a.tar.bz2
Add _bfd_elf_ifunc_get_synthetic_symtab
In i386 and x86-64 binaries with ifunc, relocations against .got.plt section may not be in the same order as entries in PLT section. This patch adds _bfd_elf_ifunc_get_synthetic_symtab. It takes a function pointer which returns an array of PLT entry symbol values. It calls the function pointer to get the PLT entry symbol value array indexed by relocation index, instead of calling plt_sym_val on each relocation index. PR binutils/17677 * elf-bfd.h (_bfd_elf_ifunc_get_synthetic_symtab): New prototype. * elf-ifunc.c (_bfd_elf_ifunc_get_synthetic_symtab): New function. * elf32-i386.c (elf_i386_plt_sym_val): Removed. (elf_backend_plt_sym_val): Likewise. (elf_i386_get_plt_sym_val): New. (elf_i386_get_synthetic_symtab): Likewise. (bfd_elf32_get_synthetic_symtab): Likewise. * elf64-x86-64.c (elf_x86_64_plt_sym_val): Removed. (elf_x86_64_plt_sym_val_offset_plt_bnd): Likewise. (elf_backend_plt_sym_val): Likewise. (elf_x86_64_get_plt_sym_val): New. (elf_x86_64_get_synthetic_symtab): Use _bfd_elf_ifunc_get_synthetic_symtab. (bfd_elf64_get_synthetic_symtab): Don't undefine for NaCl.
Diffstat (limited to 'gdb')
0 files changed, 0 insertions, 0 deletions