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] Make gold aarch64 accept long form of mapping symbols.


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

commit b91deca94e36b9f18156909e4c615fe7af8e3ae8
Author: Han Shen <shenhan@google.com>
Date:   Mon Jul 6 15:17:25 2015 -0700

    Make gold aarch64 accept long form of mapping symbols.
    
    2015-07-07  Han Shen  <shenhan@google.com>
    
    gold/ChangeLog:
    	2015-07-06 Han Shen  <shenhan@google.com>
    	* aarch64.cc (AArch64_relobj::do_count_local_symbols): Make legal
    	of mapping symbols.

Diff:
---
 gold/ChangeLog  | 11 +++++++++--
 gold/aarch64.cc | 11 +++++++++--
 2 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/gold/ChangeLog b/gold/ChangeLog
index 57468be..bdc5a58 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,10 @@
+2015-07-07  Han Shen  <shenhan@google.com>
+
+	Make gold aarch64 accept long form of mapping symbols.
+
+	* aarch64.cc (AArch64_relobj::do_count_local_symbols): Make legal
+	of mapping symbols.
+
 2015-06-29  Doug Kwan  <dougkwan@google.com>
 
 	* testsuite/arm_bl_out_of_range.s: Align stub table so that it appears
@@ -12,12 +19,12 @@
 	* testsuite/thumb_bl_out_of_range.s: Ditto.
 	* testsuite/thumb_bl_out_of_range_local.s: Ditto.
 	* testsuite/thumb_blx_out_of_range.s: Ditto.
-	
+
 2015-06-29  Han Shen  <shenhan@google.com>
 
 	Patch for erratum 843419 internal error.
 
-        * AArch64.cc (Erratum_stub::Insn_utilities): New typedef.
+        * aarch64.cc (Erratum_stub::Insn_utilities): New typedef.
         (Erratum_stub::update_erratum_insn): New method.
         (Stub_table::relocate_stubs): Modified to place relocated insn.
         (AArch64_relobj::fix_errata): Modified gold_assert.
diff --git a/gold/aarch64.cc b/gold/aarch64.cc
index e32f003..0d86d05 100644
--- a/gold/aarch64.cc
+++ b/gold/aarch64.cc
@@ -1831,10 +1831,17 @@ AArch64_relobj<size, big_endian>::do_count_local_symbols(
       Symbol_value<size>& lv((*plocal_values)[i]);
       AArch64_address input_value = lv.input_value();
 
-      // Check to see if this is a mapping symbol.
+      // Check to see if this is a mapping symbol. AArch64 mapping symbols are
+      // defined in "ELF for the ARM 64-bit Architecture", Table 4-4, Mapping
+      // symbols.
+      // Mapping symbols could be one of the following 4 forms -
+      //   a) $x
+      //   b) $x.<any...>
+      //   c) $d
+      //   d) $d.<any...>
       const char* sym_name = pnames + sym.get_st_name();
       if (sym_name[0] == '$' && (sym_name[1] == 'x' || sym_name[1] == 'd')
-	  && sym_name[2] == '\0')
+	  && (sym_name[2] == '\0' || sym_name[2] == '.'))
 	{
 	  bool is_ordinary;
 	  unsigned int input_shndx =


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