diff options
-rw-r--r-- | gold/ChangeLog | 8 | ||||
-rw-r--r-- | gold/output.cc | 5 |
2 files changed, 10 insertions, 3 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index cc0aed3..7d281a9 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,5 +1,13 @@ 2015-03-21 Cary Coutant <cary@google.com> + 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 <cary@google.com> + PR gold/18010 * stringpool.cc (Stringpool_template): Don't optimize if section alignment is greater than sizeof(char). diff --git a/gold/output.cc b/gold/output.cc index 8faa040..516e01d 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<int>(ORDER_MAX); ++i) { - if (i == static_cast<int>(ORDER_TLS_DATA) - || i == static_cast<int>(ORDER_TLS_BSS)) + if (i == static_cast<int>(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 |