aboutsummaryrefslogtreecommitdiff
path: root/bfd/ChangeLog
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 /bfd/ChangeLog
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 'bfd/ChangeLog')
-rw-r--r--bfd/ChangeLog19
1 files changed, 19 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 5144eb6..9185b8b 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,22 @@
+2014-12-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ 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.
+
2014-12-04 Alan Modra <amodra@gmail.com>
PR 17666