diff options
author | Alan Modra <amodra@gmail.com> | 2012-09-25 00:59:25 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2012-09-25 00:59:25 +0000 |
commit | ec4dbad32d15acd95084aea6145486dac5a19948 (patch) | |
tree | d100fe6ede32917d61224bd18e241485f913cae2 /gold/object.cc | |
parent | a1e5fd6938feffd9c7f2d9732b59413d210602a6 (diff) | |
download | gdb-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.cc | 3 |
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()); |