aboutsummaryrefslogtreecommitdiff
path: root/gold/target-reloc.h
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@google.com>2010-06-10 17:20:27 +0000
committerCary Coutant <ccoutant@google.com>2010-06-10 17:20:27 +0000
commitf3a2388fc96c63c0233cdc3449ea61cf36e4975b (patch)
treed073b85cc10872fe8a3f3a93207f829932255370 /gold/target-reloc.h
parent7530c4809276954eebc6cfa9a41452d15da31bdb (diff)
downloadfsf-binutils-gdb-f3a2388fc96c63c0233cdc3449ea61cf36e4975b.zip
fsf-binutils-gdb-f3a2388fc96c63c0233cdc3449ea61cf36e4975b.tar.gz
fsf-binutils-gdb-f3a2388fc96c63c0233cdc3449ea61cf36e4975b.tar.bz2
* 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 34c13e8..23866e3 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)