aboutsummaryrefslogtreecommitdiff
path: root/gold/object.cc
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2012-09-25 00:59:25 +0000
committerAlan Modra <amodra@gmail.com>2012-09-25 00:59:25 +0000
commitec4dbad32d15acd95084aea6145486dac5a19948 (patch)
treed100fe6ede32917d61224bd18e241485f913cae2 /gold/object.cc
parenta1e5fd6938feffd9c7f2d9732b59413d210602a6 (diff)
downloadgdb-ec4dbad32d15acd95084aea6145486dac5a19948.zip
gdb-ec4dbad32d15acd95084aea6145486dac5a19948.tar.gz
gdb-ec4dbad32d15acd95084aea6145486dac5a19948.tar.bz2
* object.h (Sized_relobj_file::adjust_local_symbol,
do_adjust_local_symbol): New functions. * object.cc (Sized_relobj_file::do_count_local_symbols): Use the above. * powerpc.cc (Powerpc_relobj::do_adjust_local_symbol): New function. (Powerpc_relobj::scan_opd_relocs): Warn on unexpected opd relocs and irregular opd entry spacing. (Powerpc_relobj::do_read_relocs): Add opd size checks. (Global_symbol_visitor_opd): New functor. (Target_powerpc::do_finalize_sections): Omit global symbols defined on deleted opd entries.
Diffstat (limited to 'gold/object.cc')
-rw-r--r--gold/object.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/gold/object.cc b/gold/object.cc
index 6ee10f5..3492f46 100644
--- a/gold/object.cc
+++ b/gold/object.cc
@@ -2110,7 +2110,8 @@ Sized_relobj_file<size, big_endian>::do_count_local_symbols(Stringpool* pool,
continue;
}
- if (sym.get_st_type() == elfcpp::STT_SECTION)
+ if (sym.get_st_type() == elfcpp::STT_SECTION
+ || !this->adjust_local_symbol(&lv))
{
lv.set_no_output_symtab_entry();
gold_assert(!lv.needs_output_dynsym_entry());