| Index: binutils/gold/powerpc.cc
|
| diff --git a/binutils/gold/powerpc.cc b/binutils/gold/powerpc.cc
|
| index 71f2ae468e535bfbdfd6ec4a45025aa0fb68d44d..9aacbf34763a7f77ab60c2b6c521efd765f1deec 100644
|
| --- a/binutils/gold/powerpc.cc
|
| +++ b/binutils/gold/powerpc.cc
|
| @@ -713,7 +713,7 @@ Target_powerpc<size, big_endian>::got_section(Symbol_table* symtab,
|
|
|
| layout->add_output_section_data(".got", elfcpp::SHT_PROGBITS,
|
| elfcpp::SHF_ALLOC | elfcpp::SHF_WRITE,
|
| - this->got_);
|
| + this->got_, false);
|
|
|
| // Create the GOT2 or TOC in the .got section.
|
| if (size == 32)
|
| @@ -722,7 +722,7 @@ Target_powerpc<size, big_endian>::got_section(Symbol_table* symtab,
|
| layout->add_output_section_data(".got2", elfcpp::SHT_PROGBITS,
|
| elfcpp::SHF_ALLOC
|
| | elfcpp::SHF_WRITE,
|
| - this->got2_);
|
| + this->got2_, false);
|
| }
|
| else
|
| {
|
| @@ -730,7 +730,7 @@ Target_powerpc<size, big_endian>::got_section(Symbol_table* symtab,
|
| layout->add_output_section_data(".toc", elfcpp::SHT_PROGBITS,
|
| elfcpp::SHF_ALLOC
|
| | elfcpp::SHF_WRITE,
|
| - this->toc_);
|
| + this->toc_, false);
|
| }
|
|
|
| // Define _GLOBAL_OFFSET_TABLE_ at the start of the .got section.
|
| @@ -756,7 +756,7 @@ Target_powerpc<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_;
|
| }
|
| @@ -816,7 +816,7 @@ Output_data_plt_powerpc<size, big_endian>::Output_data_plt_powerpc(Layout* layou
|
| {
|
| 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>
|
| @@ -945,7 +945,7 @@ Target_powerpc<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,
|
| @@ -1512,7 +1512,7 @@ Target_powerpc<size, big_endian>::scan_relocs(
|
| Output_section* os = layout->add_output_section_data(".sdata", 0,
|
| elfcpp::SHF_ALLOC
|
| | elfcpp::SHF_WRITE,
|
| - sdata);
|
| + sdata, false);
|
| symtab->define_in_output_data("_SDA_BASE_", NULL,
|
| os,
|
| 32768, 0,
|
| @@ -1547,7 +1547,8 @@ Target_powerpc<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);
|
| @@ -1557,7 +1558,8 @@ Target_powerpc<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);
|
|
|