gold/
PR gold/14993 * output.cc (Output_section::add_input_section): For incremental updates, don't track input sections that are allocated from patch space.
This commit is contained in:
parent
07a8e9f036
commit
3136a00eec
2 changed files with 15 additions and 18 deletions
|
@ -1,3 +1,10 @@
|
|||
2013-01-07 Cary Coutant <ccoutant@google.com>
|
||||
|
||||
PR gold/14993
|
||||
* output.cc (Output_section::add_input_section): For incremental
|
||||
updates, don't track input sections that are allocated from patch
|
||||
space.
|
||||
|
||||
2013-01-07 H.J. Lu <hongjiu.lu@intel.com>
|
||||
Ian Lance Taylor <iant@google.com>
|
||||
|
||||
|
|
|
@ -2422,7 +2422,7 @@ Output_section::add_input_section(Layout* layout,
|
|||
input_section_size = uncompressed_size;
|
||||
|
||||
off_t offset_in_section;
|
||||
off_t aligned_offset_in_section;
|
||||
|
||||
if (this->has_fixed_layout())
|
||||
{
|
||||
// For incremental updates, find a chunk of unused space in the section.
|
||||
|
@ -2432,17 +2432,15 @@ Output_section::add_input_section(Layout* layout,
|
|||
gold_fallback(_("out of patch space in section %s; "
|
||||
"relink with --incremental-full"),
|
||||
this->name());
|
||||
aligned_offset_in_section = offset_in_section;
|
||||
}
|
||||
else
|
||||
{
|
||||
offset_in_section = this->current_data_size_for_child();
|
||||
aligned_offset_in_section = align_address(offset_in_section,
|
||||
addralign);
|
||||
this->set_current_data_size_for_child(aligned_offset_in_section
|
||||
+ input_section_size);
|
||||
return offset_in_section;
|
||||
}
|
||||
|
||||
offset_in_section = this->current_data_size_for_child();
|
||||
off_t aligned_offset_in_section = align_address(offset_in_section,
|
||||
addralign);
|
||||
this->set_current_data_size_for_child(aligned_offset_in_section
|
||||
+ input_section_size);
|
||||
|
||||
// Determine if we want to delay code-fill generation until the output
|
||||
// section is written. When the target is relaxing, we want to delay fill
|
||||
// generating to avoid adjusting them during relaxation. Also, if we are
|
||||
|
@ -2507,14 +2505,6 @@ Output_section::add_input_section(Layout* layout,
|
|||
this->set_input_section_order_specified();
|
||||
}
|
||||
}
|
||||
if (this->has_fixed_layout())
|
||||
{
|
||||
// For incremental updates, finalize the address and offset now.
|
||||
uint64_t addr = this->address();
|
||||
isecn.set_address_and_file_offset(addr + aligned_offset_in_section,
|
||||
aligned_offset_in_section,
|
||||
this->offset());
|
||||
}
|
||||
this->input_sections_.push_back(isecn);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue