summaryrefslogtreecommitdiff
path: root/gold/target-reloc.h
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@google.com>2010-06-10 17:20:26 +0000
committerCary Coutant <ccoutant@google.com>2010-06-10 17:20:26 +0000
commit9e47615c1b7e80aaf4b8ca5b34588e8c226ddf0a (patch)
treeeb035c59dc6c2121882ed3e4988422f6df4f50e3 /gold/target-reloc.h
parent9dfff74335e23a2f5cfcbcc325b8d3c8005b2203 (diff)
downloadbinutils-redhat-9e47615c1b7e80aaf4b8ca5b34588e8c226ddf0a.tar.gz
* object.cc (Sized_relobj::do_layout): Defer layout for reloc sections.
(Sized_relobj::do_layout_deferred_sections): Do layout for deferred reloc sections. * object.h (Sized_relobj::deferred_layout_relocs_): New data member. PR 11683 * symtab.h (Symbol::is_placeholder): New member function. * target-reloc.h (relocate_section): Check for placeholder symbols. * testsuite/Makefile.am (plugin_test_8): New test. (plugin_test_9): New test. * testsuite/Makefile.in: Regenerate.
Diffstat (limited to 'gold/target-reloc.h')
-rw-r--r--gold/target-reloc.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/gold/target-reloc.h b/gold/target-reloc.h
index 34c13e8173..23866e373d 100644
--- a/gold/target-reloc.h
+++ b/gold/target-reloc.h
@@ -341,7 +341,7 @@ relocate_section(
}
if (sym != NULL
- && sym->is_undefined()
+ && (sym->is_undefined() || sym->is_placeholder())
&& sym->binding() != elfcpp::STB_WEAK
&& !is_defined_in_discarded_section
&& !target->is_defined_by_abi(sym)