diff --git a/gold/ChangeLog b/gold/ChangeLog index cc0aed32ef1..7d281a9f23f 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,11 @@ +2015-03-21 Cary Coutant + + PR gold/14217 + * output.cc (Output_segment::is_first_section_relro): Don't ignore + .tdata section. + (Output_segment::set_section_addresses): Don't align size of relro + segment for .tbss. + 2015-03-21 Cary Coutant PR gold/18010 diff --git a/gold/output.cc b/gold/output.cc index 8faa0403dbb..516e01daff1 100644 --- a/gold/output.cc +++ b/gold/output.cc @@ -4176,8 +4176,7 @@ Output_segment::is_first_section_relro() const { for (int i = 0; i < static_cast(ORDER_MAX); ++i) { - if (i == static_cast(ORDER_TLS_DATA) - || i == static_cast(ORDER_TLS_BSS)) + if (i == static_cast(ORDER_TLS_BSS)) continue; const Output_data_list* pdl = &this->output_lists_[i]; if (!pdl->empty()) @@ -4305,11 +4304,11 @@ Output_segment::set_section_addresses(const Target* target, align = max_align; in_tls = false; } - relro_size = align_address(relro_size, align); // Ignore the size of the .tbss section. if ((*p)->is_section_flag_set(elfcpp::SHF_TLS) && (*p)->is_section_type(elfcpp::SHT_NOBITS)) continue; + relro_size = align_address(relro_size, align); if ((*p)->is_address_valid()) relro_size += (*p)->data_size(); else