Drop 'missing mapping symbols' warning for arm and aarch64.
[external/binutils.git] / gold / aarch64.cc
index e32f003..b9d04cd 100644 (file)
@@ -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 =
@@ -2077,10 +2084,6 @@ AArch64_relobj<size, big_endian>::scan_errata(
   // Find the first mapping symbol record within section shndx.
   typename Mapping_symbol_info::const_iterator p =
     this->mapping_symbol_info_.lower_bound(section_start);
-  if (p == this->mapping_symbol_info_.end() || p->first.shndx_ != shndx)
-    gold_warning(_("cannot scan executable section %u of %s for Cortex-A53 "
-                  "erratum because it has no mapping symbols."),
-                shndx, this->name().c_str());
   while (p != this->mapping_symbol_info_.end() &&
         p->first.shndx_ == shndx)
     {