summaryrefslogtreecommitdiff
path: root/gold/aarch64.cc
diff options
context:
space:
mode:
authorEric Christopher <echristo@gmail.com>2017-06-07 17:49:35 -0700
committerEric Christopher <echristo@gmail.com>2017-06-07 17:52:37 -0700
commit81b6fe3bf9f3be2b6b81d05d08ac58d2a6dcb760 (patch)
tree48487ca44320303fbfeff7241b9d575b94ce70bf /gold/aarch64.cc
parent3030551ec55042d7c87bd55fd29db2b06fe06df9 (diff)
downloadbinutils-gdb-81b6fe3bf9f3be2b6b81d05d08ac58d2a6dcb760.tar.gz
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.
Diffstat (limited to 'gold/aarch64.cc')
-rw-r--r--gold/aarch64.cc18
1 files changed, 16 insertions, 2 deletions
diff --git a/gold/aarch64.cc b/gold/aarch64.cc
index c9bb6b730d3..24709866754 100644
--- a/gold/aarch64.cc
+++ b/gold/aarch64.cc
@@ -3746,8 +3746,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.
@@ -5405,6 +5410,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);