[AArch64] Factor stub creation code into _bfd_aarch64_create_stub_section.

This commit is contained in:
Marcus Shawcroft 2015-03-10 13:16:28 +00:00
parent ef85752125
commit 6658567565
2 changed files with 29 additions and 14 deletions

View File

@ -1,3 +1,9 @@
2015-03-23 Marcus Shawcroft <marcus.shawcroft@arm.com>
* elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Factor stub
creation code into...
(bfd_aarch64_create_stub_section): Define.
2015-03-23 Marcus Shawcroft <marcus.shawcroft@arm.com>
* elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Rename

View File

@ -2327,6 +2327,28 @@ elfNN_aarch64_get_stub_entry (const asection *input_section,
}
/* Create a stub section. */
static asection *
_bfd_aarch64_create_stub_section (asection *section,
struct elf_aarch64_link_hash_table *htab)
{
size_t namelen;
bfd_size_type len;
char *s_name;
namelen = strlen (section->name);
len = namelen + sizeof (STUB_SUFFIX);
s_name = bfd_alloc (htab->stub_bfd, len);
if (s_name == NULL)
return NULL;
memcpy (s_name, section->name, namelen);
memcpy (s_name + namelen, STUB_SUFFIX, sizeof (STUB_SUFFIX));
return (*htab->add_stub_section) (s_name, section);
}
/* Find or create a stub section in the stub group for an input
section. */
@ -2346,20 +2368,7 @@ _bfd_aarch64_create_or_find_stub_sec (asection *section,
stub_sec = htab->stub_group[link_sec->id].stub_sec;
if (stub_sec == NULL)
{
size_t namelen;
bfd_size_type len;
char *s_name;
namelen = strlen (link_sec->name);
len = namelen + sizeof (STUB_SUFFIX);
s_name = bfd_alloc (htab->stub_bfd, len);
if (s_name == NULL)
return NULL;
memcpy (s_name, link_sec->name, namelen);
memcpy (s_name + namelen, STUB_SUFFIX, sizeof (STUB_SUFFIX));
stub_sec = (*htab->add_stub_section) (s_name, link_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;