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/binutils-2_28-branch] 2017-06-21 Eric Christopher <echristo at gmail dot com>


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

commit af417045260d4eee267e2252ceff7b012f5157b8
Author: Eric Christopher <echristo@gmail.com>
Date:   Wed Jun 7 17:49:35 2017 -0700

    2017-06-21  Eric Christopher  <echristo@gmail.com>
    
            Apply from master
           	2017-06-07  Eric Christopher  <echristo@gmail.com>
    
            * aarch64.cc (maybe_apply_stub): Add debug logging for looking
            up stubs to undefined symbols and early return rather than
            fail to look them up.
            (scan_reloc_for_stub): Add debug logging for no stub creation
            for undefined symbols.

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

diff --git a/gold/ChangeLog b/gold/ChangeLog
index 4323d78..ba8223c 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,6 +1,17 @@
 2017-06-21  Eric Christopher  <echristo@gmail.com>
 
 	Apply from master
+        2017-06-07  Eric Christopher  <echristo@gmail.com>
+
+	* aarch64.cc (maybe_apply_stub): Add debug logging for looking
+	up stubs to undefined symbols and early return rather than
+	fail to look them up.
+	(scan_reloc_for_stub): Add debug logging for no stub creation
+	for undefined symbols.
+
+2017-06-21  Eric Christopher  <echristo@gmail.com>
+
+	Apply from master
 	2017-05-15  Eric Christopher <echristo@gmail.com>
 
         * layout.cc (Layout::segment_precedes): Add a case for testing
diff --git a/gold/aarch64.cc b/gold/aarch64.cc
index b207dcd..52339bb 100644
--- a/gold/aarch64.cc
+++ b/gold/aarch64.cc
@@ -3739,8 +3739,13 @@ Target_aarch64<size, big_endian>::scan_reloc_for_stub(
 	  psymval = &symval;
 	}
       else if (gsym->is_undefined())
-	// There is no need to generate a stub symbol is undefined.
-	return;
+	{
+	  // There is no need to generate a stub symbol is undefined.
+          gold_debug(DEBUG_TARGET,
+                     "stub: not creating a stub for undefined symbol %s in file %s",
+                     gsym->name(), aarch64_relobj->name().c_str());
+          return;
+	}
     }
 
   // Get the symbol value.
@@ -5398,6 +5403,15 @@ maybe_apply_stub(unsigned int r_type,
 
   const The_aarch64_relobj* aarch64_relobj =
       static_cast<const The_aarch64_relobj*>(object);
+  // We don't create stubs for undefined symbols so don't look for one.
+  if (gsym && gsym->is_undefined())
+    {
+      gold_debug(DEBUG_TARGET,
+		 "stub: looking for a stub for undefined symbol %s in file %s",
+		 gsym->name(), aarch64_relobj->name().c_str());
+      return false;
+    }
+
   The_stub_table* stub_table = aarch64_relobj->stub_table(relinfo->data_shndx);
   gold_assert(stub_table != NULL);


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