]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit - bfd/elf64-ppc.c
ppc64 section group handling
authorAlan Modra <amodra@gmail.com>
Mon, 31 Aug 2015 08:20:33 +0000 (17:50 +0930)
committerAlan Modra <amodra@gmail.com>
Mon, 31 Aug 2015 13:24:06 +0000 (22:54 +0930)
commit6f20ed8a6ba1a01fb356eea8ea45310ed8478a27
tree4d036fe5f4eae325cc4925745f2251223a158eca
parent136765eab14d32f5fec607f755c3096eb43bf96f
ppc64 section group handling

Two organizational changes to the array of additional info kept for
sections.
1) Move group info into a per-group allocated struct, in preparation
for future changes that need per-group accounting.
2) Expand the array to include output sections, which simplifies
sizing and removes the need for a separate output section array.

* section.c (section_id): Make file scope.
(bfd_get_next_section_id): New function.
* elf64-ppc.c (struct map_stub): Remove toc_off field.  Move decl.
(struct ppc_stub_hash_entry): Delete stub_sec and id_sec.  Add
group.  Update all uses.
(struct ppc_link_hash_table): Delete top_id, top_index, and
input_list.  Add sec_info_arr_size.  Rename stub_group to
sec_info, and make group info indirect.  Update stub_group refs
throughout file.
(ppc_add_stub): Don't look for stub_sec on link_sec stub_group
entry.
(ppc_build_one_stub): Delete FIXME.
(ppc64_elf_setup_section_lists): Size htab->sec_info for all
sections, not just input sections.  Don't create htab->input_list.
(ppc64_elf_next_input_section): Update to use sec_info union as
list pointer.
(PREV_SEC): Delete.
(group_sections): Pass "info" param rather than "htab".  Iterate
over output sections rather than input_list.  Use sec_info union
as list pointers.  Alloc atruct map_stub, and return fail status.
* bfd-in2.h: Regenerate.
bfd/ChangeLog
bfd/bfd-in2.h
bfd/elf64-ppc.c
bfd/section.c