[AArch64] Refactor section_group[] representation.

Change the behaviour of section_group[] such that .stub_sec points to
the stub section attached to the indexed section rather than the stub
section attached to the link_section pointed to be the index section.

This provides a mechanism to get to the stub section following any
input section.  While still allowing the section grouping mechanism to
find the section group stub section associated with an input section
by first following the link_sec pointer.
This commit is contained in:
Marcus Shawcroft 2015-02-28 00:17:22 +00:00
parent 369f6daa21
commit 30068a6d2d
2 changed files with 8 additions and 12 deletions

View File

@ -1,3 +1,8 @@
2015-03-24 Marcus Shawcroft <marcus.shawcroft@arm.com>
* elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Adjust
update of section_group[].stub_sec.
2015-03-24 Marcus Shawcroft <marcus.shawcroft@arm.com> 2015-03-24 Marcus Shawcroft <marcus.shawcroft@arm.com>
* elfnn-aarch64.c (struct aarch64_erratum_835769_fix) Remove. * elfnn-aarch64.c (struct aarch64_erratum_835769_fix) Remove.

View File

@ -2350,21 +2350,12 @@ _bfd_aarch64_create_or_find_stub_sec (asection *section,
link_sec = htab->stub_group[section->id].link_sec; link_sec = htab->stub_group[section->id].link_sec;
BFD_ASSERT (link_sec != NULL); BFD_ASSERT (link_sec != NULL);
stub_sec = htab->stub_group[section->id].stub_sec; stub_sec = htab->stub_group[link_sec->id].stub_sec;
if (stub_sec == NULL) if (stub_sec == NULL)
{ {
stub_sec = htab->stub_group[link_sec->id].stub_sec; stub_sec = _bfd_aarch64_create_stub_section (link_sec, htab);
if (stub_sec == NULL) htab->stub_group[link_sec->id].stub_sec = stub_sec;
{
stub_sec = _bfd_aarch64_create_stub_section (link_sec, htab);
if (stub_sec == NULL)
return NULL;
htab->stub_group[link_sec->id].stub_sec = stub_sec;
}
htab->stub_group[section->id].stub_sec = stub_sec;
} }
return stub_sec; return stub_sec;
} }