| Index: binutils/gold/sparc.cc
|
| diff --git a/binutils/gold/sparc.cc b/binutils/gold/sparc.cc
|
| index eac983f8ef908406855db9771352ca31c00f24ff..55a04d96232c554606f61b65fd34a64d79bf0454 100644
|
| --- a/binutils/gold/sparc.cc
|
| +++ b/binutils/gold/sparc.cc
|
| @@ -1027,7 +1027,7 @@ Target_sparc<size, big_endian>::got_section(Symbol_table* symtab,
|
| os = layout->add_output_section_data(".got", elfcpp::SHT_PROGBITS,
|
| (elfcpp::SHF_ALLOC
|
| | elfcpp::SHF_WRITE),
|
| - this->got_);
|
| + this->got_, false);
|
| os->set_is_relro();
|
|
|
| // Define _GLOBAL_OFFSET_TABLE_ at the start of the .got section.
|
| @@ -1053,7 +1053,7 @@ Target_sparc<size, big_endian>::rela_dyn_section(Layout* layout)
|
| gold_assert(layout != NULL);
|
| this->rela_dyn_ = new Reloc_section(parameters->options().combreloc());
|
| layout->add_output_section_data(".rela.dyn", elfcpp::SHT_RELA,
|
| - elfcpp::SHF_ALLOC, this->rela_dyn_);
|
| + elfcpp::SHF_ALLOC, this->rela_dyn_, true);
|
| }
|
| return this->rela_dyn_;
|
| }
|
| @@ -1155,7 +1155,7 @@ Output_data_plt_sparc<size, big_endian>::Output_data_plt_sparc(Layout* layout)
|
| {
|
| this->rel_ = new Reloc_section(false);
|
| layout->add_output_section_data(".rela.plt", elfcpp::SHT_RELA,
|
| - elfcpp::SHF_ALLOC, this->rel_);
|
| + elfcpp::SHF_ALLOC, this->rel_, true);
|
| }
|
|
|
| template<int size, bool big_endian>
|
| @@ -1372,7 +1372,7 @@ Target_sparc<size, big_endian>::make_plt_entry(Symbol_table* symtab,
|
| (elfcpp::SHF_ALLOC
|
| | elfcpp::SHF_EXECINSTR
|
| | elfcpp::SHF_WRITE),
|
| - this->plt_);
|
| + this->plt_, false);
|
|
|
| // Define _PROCEDURE_LINKAGE_TABLE_ at the start of the .plt section.
|
| symtab->define_in_output_data("_PROCEDURE_LINKAGE_TABLE_", NULL,
|
| @@ -2334,7 +2334,8 @@ Target_sparc<size, big_endian>::do_finalize_sections(Layout* layout)
|
| Output_data_dynamic* const odyn = layout->dynamic_data();
|
| if (odyn != NULL)
|
| {
|
| - if (this->plt_ != NULL)
|
| + if (this->plt_ != NULL
|
| + && this->plt_->output_section() != NULL)
|
| {
|
| const Output_data* od = this->plt_->rel_plt();
|
| odyn->add_section_size(elfcpp::DT_PLTRELSZ, od);
|
| @@ -2344,7 +2345,8 @@ Target_sparc<size, big_endian>::do_finalize_sections(Layout* layout)
|
| odyn->add_section_address(elfcpp::DT_PLTGOT, this->plt_);
|
| }
|
|
|
| - if (this->rela_dyn_ != NULL)
|
| + if (this->rela_dyn_ != NULL
|
| + && this->rela_dyn_->output_section() != NULL)
|
| {
|
| const Output_data* od = this->rela_dyn_;
|
| odyn->add_section_address(elfcpp::DT_RELA, od);
|
|
|