diff options
author | Cary Coutant <ccoutant@google.com> | 2013-06-27 23:20:35 +0000 |
---|---|---|
committer | Cary Coutant <ccoutant@google.com> | 2013-06-27 23:20:35 +0000 |
commit | 06f30c9d101218f5d78175cd7e8653a771e825b5 (patch) | |
tree | 655f1743b7f28d7a7c529b4648370c13611fafdd /gold | |
parent | 97b1715633cb136863e0d5ceacef2871ff81a7c9 (diff) | |
download | gdb-06f30c9d101218f5d78175cd7e8653a771e825b5.zip gdb-06f30c9d101218f5d78175cd7e8653a771e825b5.tar.gz gdb-06f30c9d101218f5d78175cd7e8653a771e825b5.tar.bz2 |
PR gold/15662
* powerpc.cc (Output_data_brlt_powerpc::reset_brlt_sizes): New
function.
(Output_data_brlt_powerpc::finalize_brlt_sizes): New function.
(Target_powerpc::do_relax): Call the above.
Diffstat (limited to 'gold')
-rw-r--r-- | gold/ChangeLog | 8 | ||||
-rw-r--r-- | gold/powerpc.cc | 18 |
2 files changed, 24 insertions, 2 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index 874a20a..d719df4 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,11 @@ +2013-06-27 Jing Yu <jingyu@google.com> + + PR gold/15662 + * powerpc.cc (Output_data_brlt_powerpc::reset_brlt_sizes): New + function. + (Output_data_brlt_powerpc::finalize_brlt_sizes): New function. + (Target_powerpc::do_relax): Call the above. + 2013-06-27 Cary Coutant <ccoutant@google.com> * powerpc.cc (Target_powerpc::symval_for_branch): Don't assert diff --git a/gold/powerpc.cc b/gold/powerpc.cc index 747c7b4..17849ee 100644 --- a/gold/powerpc.cc +++ b/gold/powerpc.cc @@ -2628,7 +2628,7 @@ Target_powerpc<size, big_endian>::do_relax(int pass, && parameters->options().output_is_position_independent()) { // Fill in the BRLT relocs. - this->brlt_section_->reset_data_size(); + this->brlt_section_->reset_brlt_sizes(); for (typename Branch_lookup_table::const_iterator p = this->branch_lookup_table_.begin(); p != this->branch_lookup_table_.end(); @@ -2636,7 +2636,7 @@ Target_powerpc<size, big_endian>::do_relax(int pass, { this->brlt_section_->add_reloc(p->first, p->second); } - this->brlt_section_->finalize_data_size(); + this->brlt_section_->finalize_brlt_sizes(); } return again; } @@ -3013,6 +3013,20 @@ class Output_data_brlt_powerpc : public Output_section_data_build targ_(targ) { } + void + reset_brlt_sizes() + { + this->reset_data_size(); + this->rel_->reset_data_size(); + } + + void + finalize_brlt_sizes() + { + this->finalize_data_size(); + this->rel_->finalize_data_size(); + } + // Add a reloc for an entry in the BRLT. void add_reloc(Address to, unsigned int off) |