diff options
author | Marcus Shawcroft <marcus.shawcroft@arm.com> | 2015-03-10 13:16:28 +0000 |
---|---|---|
committer | Andrew Hsieh <andrewhsieh@google.com> | 2015-03-30 21:38:54 -0700 |
commit | 920ee1c9093537f31c4fe779f96e64aa01c277d4 (patch) | |
tree | a4302dc0bfa6c7cdf340163f7c3fb5ee869c3104 /binutils-2.25 | |
parent | 907fd75eaa23fe589a47d1168a58989a4621d732 (diff) | |
download | toolchain_binutils-920ee1c9093537f31c4fe779f96e64aa01c277d4.tar.gz toolchain_binutils-920ee1c9093537f31c4fe779f96e64aa01c277d4.tar.bz2 toolchain_binutils-920ee1c9093537f31c4fe779f96e64aa01c277d4.zip |
[AArch64] Factor stub creation code into _bfd_aarch64_create_stub_section.
Change-Id: I6f01f9c9c3a64ed8ed52486f0f6f66f66b85a317
Diffstat (limited to 'binutils-2.25')
-rw-r--r-- | binutils-2.25/bfd/elfnn-aarch64.c | 37 |
1 files changed, 23 insertions, 14 deletions
diff --git a/binutils-2.25/bfd/elfnn-aarch64.c b/binutils-2.25/bfd/elfnn-aarch64.c index 9e58594f..b7a3bbe2 100644 --- a/binutils-2.25/bfd/elfnn-aarch64.c +++ b/binutils-2.25/bfd/elfnn-aarch64.c @@ -2304,6 +2304,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. */ @@ -2323,20 +2345,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; |