From: Marcus Shawcroft Date: Sat, 28 Feb 2015 00:17:22 +0000 (+0000) Subject: [AArch64] Refactor section_group[] representation. X-Git-Tag: gdb-7.10-branchpoint~1045 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=30068a6d2da1ba4b0248a270c7c958ef24a80416;p=thirdparty%2Fbinutils-gdb.git [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. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 47afb5c36c0..07b47b124c9 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2015-03-24 Marcus Shawcroft + + * elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Adjust + update of section_group[].stub_sec. + 2015-03-24 Marcus Shawcroft * elfnn-aarch64.c (struct aarch64_erratum_835769_fix) Remove. diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c index 14b4057bb4f..d5c1fd56b43 100644 --- a/bfd/elfnn-aarch64.c +++ b/bfd/elfnn-aarch64.c @@ -2350,21 +2350,12 @@ _bfd_aarch64_create_or_find_stub_sec (asection *section, link_sec = htab->stub_group[section->id].link_sec; 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) { - stub_sec = htab->stub_group[link_sec->id].stub_sec; - if (stub_sec == NULL) - { - 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; + stub_sec = _bfd_aarch64_create_stub_section (link_sec, htab); + htab->stub_group[link_sec->id].stub_sec = stub_sec; } - return stub_sec; }