From: Rafael Ávila de Espíndola Date: Wed, 26 May 2010 15:15:05 +0000 (+0000) Subject: 2010-05-26 Rafael Espindola X-Git-Url: http://git.efficios.com/?a=commitdiff_plain;h=f418727792e6e7dce38aa382db45d147bccd8ed7;p=deliverable%2Fbinutils-gdb.git 2010-05-26 Rafael Espindola * script-sections.cc (Output_section_definition::set_section_addresses): Check for --section-start. --- diff --git a/gold/ChangeLog b/gold/ChangeLog index e2b009d1ea..899170d14e 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,8 @@ +2010-05-26 Rafael Espindola + + * script-sections.cc (Output_section_definition::set_section_addresses): + Check for --section-start. + 2010-05-26 Doug Kwan * arm.cc (Arm_scan_relocatable_relocs): New class. diff --git a/gold/script-sections.cc b/gold/script-sections.cc index 952444e3d6..3266115a9e 100644 --- a/gold/script-sections.cc +++ b/gold/script-sections.cc @@ -1939,14 +1939,23 @@ Output_section_definition::set_section_addresses(Symbol_table* symtab, uint64_t old_dot_value = *dot_value; uint64_t old_load_address = *load_address; - if (this->address_ == NULL) - address = *dot_value; - else + // Check for --section-start. + bool is_address_set = false; + if (this->output_section_ != NULL) + is_address_set = + parameters->options().section_start(this->output_section_->name(), + &address); + if (!is_address_set) { - Output_section* dummy; - address = this->address_->eval_with_dot(symtab, layout, true, - *dot_value, NULL, &dummy, - dot_alignment); + if (this->address_ == NULL) + address = *dot_value; + else + { + Output_section* dummy; + address = this->address_->eval_with_dot(symtab, layout, true, + *dot_value, NULL, &dummy, + dot_alignment); + } } uint64_t align;