This is the mail archive of the binutils@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]

[gold commit] PR 18695: Add additional information to relocation overflow errors


This patch adds some additional useful information to the relocation
overflow errors for x86_64.

-cary


2016-02-07  Cary Coutant  <ccoutant@gmail.com>

gold/
        PR gold/18695
        * x86_64.cc (Target_x86_64::Relocate::relocate): Add additional
        information to relocation overflow errors.

diff --git a/gold/x86_64.cc b/gold/x86_64.cc
index b0780af..81126ef 100644
--- a/gold/x86_64.cc
+++ b/gold/x86_64.cc
@@ -3701,8 +3701,30 @@ Target_x86_64<size>::Relocate::relocate(
     }

   if (rstatus == Reloc_funcs::RELOC_OVERFLOW)
-    gold_error_at_location(relinfo, relnum, rela.get_r_offset(),
-                          _("relocation overflow"));
+    {
+      if (gsym == NULL)
+        {
+         unsigned int r_sym = elfcpp::elf_r_sym<size>(rela.get_r_info());
+         gold_error_at_location(relinfo, relnum, rela.get_r_offset(),
+                                _("relocation overflow: "
+                                  "reference to local symbol %u in %s"),
+                                r_sym, object->name().c_str());
+        }
+      else if (gsym->is_defined() && gsym->source() == Symbol::FROM_OBJECT)
+        {
+         gold_error_at_location(relinfo, relnum, rela.get_r_offset(),
+                                _("relocation overflow: "
+                                  "reference to '%s' defined in %s"),
+                                gsym->name(),
+                                gsym->object()->name().c_str());
+        }
+      else
+        {
+         gold_error_at_location(relinfo, relnum, rela.get_r_offset(),
+                                _("relocation overflow: reference to '%s'"),
+                                gsym->name());
+        }
+    }

   return true;
 }


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