summaryrefslogtreecommitdiff
path: root/bfd/elfxx-x86.h
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/elfxx-x86.h')
-rw-r--r--bfd/elfxx-x86.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/bfd/elfxx-x86.h b/bfd/elfxx-x86.h
index 21e16a2f10..45f2458cc2 100644
--- a/bfd/elfxx-x86.h
+++ b/bfd/elfxx-x86.h
@@ -315,6 +315,27 @@ struct elf_x86_obj_tdata
bfd_vma *local_tlsdesc_gotent;
};
+enum elf_x86_plt_type
+{
+ plt_non_lazy = 0,
+ plt_lazy = 1 << 0,
+ plt_pic = 1 << 1,
+ plt_second = 1 << 2,
+ plt_unknown = -1
+};
+
+struct elf_x86_plt
+{
+ const char *name;
+ asection *sec;
+ bfd_byte *contents;
+ enum elf_x86_plt_type type;
+ unsigned int plt_got_offset;
+ unsigned int plt_entry_size;
+ unsigned int plt_got_insn_size; /* Only used for x86-64. */
+ long count;
+};
+
#define elf_x86_tdata(abfd) \
((struct elf_x86_obj_tdata *) (abfd)->tdata.any)
@@ -372,6 +393,10 @@ extern bfd_boolean _bfd_x86_elf_fixup_symbol
extern bfd_boolean _bfd_x86_elf_hash_symbol
(struct elf_link_hash_entry *);
+extern long _bfd_x86_elf_get_synthetic_symtab
+ (bfd *, long, long, bfd_vma, struct elf_x86_plt [], asymbol **,
+ asymbol **);
+
extern enum elf_property_kind _bfd_x86_elf_parse_gnu_properties
(bfd *, unsigned int, bfd_byte *, unsigned int);