mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 03:51:15 +08:00
2015-01-25 Cary Coutant <ccoutant@google.com>
gold/ * output.cc (Output_segment::set_section_addresses): Fix calculation of size of relro segment.
This commit is contained in:
parent
76dbb86382
commit
5485698ae4
@ -1,3 +1,8 @@
|
||||
2015-01-25 Cary Coutant <ccoutant@google.com>
|
||||
|
||||
* output.cc (Output_segment::set_section_addresses): Fix calculation
|
||||
of size of relro segment.
|
||||
|
||||
2015-01-22 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* powerpc.cc (Target_powerpc::Scan::local <got relocs>): Correct
|
||||
|
@ -4311,8 +4311,8 @@ Output_segment::set_section_addresses(const Target* target,
|
||||
else
|
||||
{
|
||||
// FIXME: This could be faster.
|
||||
(*p)->set_address_and_file_offset(addr + relro_size,
|
||||
off + relro_size);
|
||||
(*p)->set_address_and_file_offset(relro_size,
|
||||
relro_size);
|
||||
relro_size += (*p)->data_size();
|
||||
(*p)->reset_address_and_file_offset();
|
||||
}
|
||||
@ -4332,11 +4332,12 @@ Output_segment::set_section_addresses(const Target* target,
|
||||
|
||||
// Align to offset N such that (N + RELRO_SIZE) % PAGE_ALIGN == 0.
|
||||
uint64_t desired_align = page_align - (aligned_size % page_align);
|
||||
if (desired_align < *poff % page_align)
|
||||
*poff += page_align - *poff % page_align;
|
||||
*poff += desired_align - *poff % page_align;
|
||||
addr += *poff - orig_off;
|
||||
orig_off = *poff;
|
||||
if (desired_align < off % page_align)
|
||||
off += page_align;
|
||||
off += desired_align - off % page_align;
|
||||
addr += off - orig_off;
|
||||
orig_off = off;
|
||||
*poff = off;
|
||||
}
|
||||
|
||||
if (!reset && this->are_addresses_set_)
|
||||
|
Loading…
Reference in New Issue
Block a user