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/linker.c | |
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/linker.c')
-rw-r--r-- | bfd/linker.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/bfd/linker.c b/bfd/linker.c index cd2adb5..a2095dc 100644 --- a/bfd/linker.c +++ b/bfd/linker.c @@ -2858,8 +2858,19 @@ DESCRIPTION static struct bfd_hash_table _bfd_section_already_linked_table; /* Support routines for the hash table used by section_already_linked, - initialize the table, lookup, fill in an entry and remove the - table. */ + initialize the table, traverse, lookup, fill in an entry and remove + the table. */ + +void +bfd_section_already_linked_table_traverse + (bfd_boolean (*func) (struct bfd_section_already_linked_hash_entry *, + void *), void *info) +{ + bfd_hash_traverse (&_bfd_section_already_linked_table, + (bfd_boolean (*) (struct bfd_hash_entry *, + void *)) func, + info); +} struct bfd_section_already_linked_hash_entry * bfd_section_already_linked_table_lookup (const char *name) |