This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] [AArch64] Factor stub creation code into _bfd_aarch64_create_stub_section.


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=665856756517ff4eb0c31c07f5c7e1666ccd4445

commit 665856756517ff4eb0c31c07f5c7e1666ccd4445
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date:   Tue Mar 10 13:16:28 2015 +0000

    [AArch64] Factor stub creation code into _bfd_aarch64_create_stub_section.

Diff:
---
 bfd/ChangeLog       |  6 ++++++
 bfd/elfnn-aarch64.c | 37 +++++++++++++++++++++++--------------
 2 files changed, 29 insertions(+), 14 deletions(-)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 386cff9..e281c7f 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,11 @@
 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
 	from elf_aarch64_create_or_find_stub_sec.
 	(_bfd_aarch64_add_stub_entry_in_group): Rename from
diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c
index 1db5942..5f80a2d 100644
--- a/bfd/elfnn-aarch64.c
+++ b/bfd/elfnn-aarch64.c
@@ -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;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]