From 04bc2a285435a82c45e3417906374307eafacd90 Mon Sep 17 00:00:00 2001 From: Vladimir Radosavljevic Date: Mon, 23 Jan 2017 17:18:00 -0800 Subject: Make the sh_info field of .rel.plt point to .plt (MIPS). gold/ * mips.cc (Mips_output_data_plt::rel_plt): Remove const from return type. (Target_mips::make_plt_entry): Make the sh_info field of .rel.plt point to .plt. --- gold/ChangeLog | 7 +++++++ gold/mips.cc | 6 +++++- 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'gold') diff --git a/gold/ChangeLog b/gold/ChangeLog index c074564..d98ff0b 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,5 +1,12 @@ 2017-01-23 Vladimir Radosavljevic + * mips.cc (Mips_output_data_plt::rel_plt): Remove const from return + type. + (Target_mips::make_plt_entry): Make the sh_info field of .rel.plt + point to .plt. + +2017-01-23 Vladimir Radosavljevic + PR gold/21054 * mips.cc (Mips_got_info::record_global_got_symbol): Don't add symbol to the dynamic symbol table if it is forced to local visibility. diff --git a/gold/mips.cc b/gold/mips.cc index ca3dd00..56af570 100644 --- a/gold/mips.cc +++ b/gold/mips.cc @@ -2475,7 +2475,7 @@ class Mips_output_data_plt : public Output_section_data add_entry(Mips_symbol* gsym, unsigned int r_type); // Return the .rel.plt section data. - const Reloc_section* + Reloc_section* rel_plt() const { return this->rel_; } @@ -8521,6 +8521,10 @@ Target_mips::make_plt_entry(Symbol_table* symtab, (elfcpp::SHF_ALLOC | elfcpp::SHF_EXECINSTR), this->plt_, ORDER_PLT, false); + + // Make the sh_info field of .rel.plt point to .plt. + Output_section* rel_plt_os = this->plt_->rel_plt()->output_section(); + rel_plt_os->set_info_section(this->plt_->output_section()); } this->plt_->add_entry(gsym, r_type); -- cgit v1.1