diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2004-07-27 14:20:49 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2004-07-27 14:20:49 +0000 |
commit | 3d7f7666a44caa6e80c048f693002b254e2fc721 (patch) | |
tree | 86d8c7925d9254c018e4b0d820a144e914fcaad7 /bfd/elf-bfd.h | |
parent | 9232bbb040244905a13453a40beeb3b4ffac8e1b (diff) | |
download | gdb-3d7f7666a44caa6e80c048f693002b254e2fc721.zip gdb-3d7f7666a44caa6e80c048f693002b254e2fc721.tar.gz gdb-3d7f7666a44caa6e80c048f693002b254e2fc721.tar.bz2 |
2004-07-27 H.J. Lu <hongjiu.lu@intel.com>
PR 161/251
* elf-bfd.h (bfd_elf_section_data): Add sec_group.
(elf_sec_group): Defined.
(bfd_elf_match_symbols_in_sections): New prototype.
(_bfd_elf_setup_group_pointers): Likewise.
* elf.c (bfd_elf_discard_group): Abort.
(bfd_elf_set_group_contents): Also include relocation sections.
Remove zero-fill for ld -r.
(_bfd_elf_setup_group_pointers): New function.
(elf_sort_elf_symbol): Likewise.
(elf_sym_name_compare): Likewise.
(bfd_elf_match_symbols_in_sections): Likewise.
* elfcode.h (elf_object_p): Call _bfd_elf_setup_group_pointers.
* elflink.c (match_group_member): New.
(elf_link_input_bfd): Check group member for discarded section.
(try_match_symbols_in_sections): New function.
(already_linked): Likewise.
(_bfd_elf_section_already_linked): Support mixing comdat group
and linkonce section.
* libbfd-in.h (bfd_section_already_linked_table_traverse): New.
* linker.c (bfd_section_already_linked_table_traverse): New.
* libbfd.h: Regenerated.
Diffstat (limited to 'bfd/elf-bfd.h')
-rw-r--r-- | bfd/elf-bfd.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index c260fa2..851b393 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -1065,6 +1065,10 @@ struct bfd_elf_section_data struct bfd_symbol *id; } group; + /* Optional information about section group; NULL if it doesn't + belongs to any section group. */ + asection *sec_group; + /* A linked list of sections in the group. Circular when used by the linker. */ asection *next_in_group; @@ -1080,6 +1084,7 @@ struct bfd_elf_section_data #define elf_group_name(sec) (elf_section_data(sec)->group.name) #define elf_group_id(sec) (elf_section_data(sec)->group.id) #define elf_next_in_group(sec) (elf_section_data(sec)->next_in_group) +#define elf_sec_group(sec) (elf_section_data(sec)->sec_group) /* Return TRUE if section has been discarded. */ #define elf_discarded_section(sec) \ @@ -1583,6 +1588,12 @@ extern bfd_boolean _bfd_elf_dynamic_symbol_p extern bfd_boolean _bfd_elf_symbol_refs_local_p (struct elf_link_hash_entry *, struct bfd_link_info *, bfd_boolean); +extern bfd_boolean bfd_elf_match_symbols_in_sections + (asection *sec1, asection *sec2); + +extern bfd_boolean _bfd_elf_setup_group_pointers + (bfd *); + extern const bfd_target *bfd_elf32_object_p (bfd *); extern const bfd_target *bfd_elf32_core_file_p |