diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2009-06-01 12:53:00 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2009-06-01 12:53:00 +0000 |
commit | 3aa14d16c669ca75f9fa4e995a2e2d13069dff3f (patch) | |
tree | 1a2ad94abb5b713dcbc666eef81faf0cc1efddcd /bfd/elf-bfd.h | |
parent | 64c9be2ef34670f6c5498ea1bd0b562465c8fd27 (diff) | |
download | gdb-3aa14d16c669ca75f9fa4e995a2e2d13069dff3f.zip gdb-3aa14d16c669ca75f9fa4e995a2e2d13069dff3f.tar.gz gdb-3aa14d16c669ca75f9fa4e995a2e2d13069dff3f.tar.bz2 |
bfd/
2009-06-01 H.J. Lu <hongjiu.lu@intel.com>
* elf-bfd.h (struct bfd_elf_section_data): Remove indirect_relocs.
(_bfd_elf_make_ifunc_reloc_section): Removed.
(_bfd_elf_is_ifunc_symbol): Likewise.
(_bfd_elf_create_static_ifunc_sections): New.
* elflink.c (_bfd_elf_adjust_dynamic_symbol): Move STT_GNU_IFUNC
symbol check to ...
(elf_link_add_object_symbols): Here.
(_bfd_elf_link_hash_hide_symbol): Don't clean plt on
STT_GNU_IFUNC symbol.
(elf_link_output_extsym): Call elf_backend_finish_dynamic_symbol
if a STT_GNU_IFUNC symbol is referenced in a non-shared object.
(IFUNC_INFIX): Removed.
(get_ifunc_reloc_section_name): Likewise.
(_bfd_elf_make_ifunc_reloc_section): Likewise.
(_bfd_elf_is_ifunc_symbol): Likewise.
(_bfd_elf_create_static_ifunc_sections): New.
ld/
2009-06-01 H.J. Lu <hongjiu.lu@intel.com>
* scripttempl/elf.sc (PLT): Add "*(.iplt)".
(GOT): Add "*(.igot.plt)a" and "*(.igot)".
(GOTPLT): Add "*(.igot)".
(__rel_iplt_start): New.
(__rel_iplt_end): Likewise.
(__rela_iplt_start): Likewise.
(__rela_iplt_end): Likewise.
Diffstat (limited to 'bfd/elf-bfd.h')
-rw-r--r-- | bfd/elf-bfd.h | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index adac206..258d11c 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -1299,9 +1299,6 @@ 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; @@ -2149,15 +2146,12 @@ 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); +extern bfd_boolean _bfd_elf_create_static_ifunc_sections + (bfd *, struct bfd_link_info *); /* Large common section. */ extern asection _bfd_elf_large_com_section; -extern bfd_boolean _bfd_elf_is_ifunc_symbol - (bfd *, struct elf_link_hash_entry *); - /* This is the condition under which finish_dynamic_symbol will be called. If our finish_dynamic_symbol isn't called, we'll need to do something about initializing any .plt and .got entries in relocate_section. */ |