summaryrefslogtreecommitdiff
path: root/bfd/elf-bfd.h
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/elf-bfd.h')
-rw-r--r--bfd/elf-bfd.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index 865388cf64c..5761923cdda 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -1297,6 +1297,9 @@ struct bfd_elf_section_data
/* A pointer to the bfd section used for dynamic relocs. */
asection *sreloc;
+ /* A pointer to the bfd section used for dynamic relocs against ifunc symbols. */
+ asection *indirect_relocs;
+
union {
/* Group name, if this section is a member of a group. */
const char *name;
@@ -1559,6 +1562,11 @@ struct elf_obj_tdata
bfd_size_type build_id_size;
bfd_byte *build_id;
+ /* True if the bfd contains symbols that have the STT_GNU_IFUNC
+ symbol type. Used to set the osabi field in the ELF header
+ structure. */
+ bfd_boolean has_ifunc_symbols;
+
/* An identifier used to distinguish different target
specific extensions to this structure. */
enum elf_object_id object_id;
@@ -2139,6 +2147,9 @@ extern int _bfd_elf_obj_attrs_arg_type (bfd *, int, int);
extern void _bfd_elf_parse_attributes (bfd *, Elf_Internal_Shdr *);
extern bfd_boolean _bfd_elf_merge_object_attributes (bfd *, bfd *);
+extern asection * _bfd_elf_make_ifunc_reloc_section
+ (bfd *, asection *, bfd *, unsigned int);
+
/* Large common section. */
extern asection _bfd_elf_large_com_section;