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); |