ppc476 patch area size miscalculation
ppc476 sections that end exactly on a page boundary need the workaround applied when a function ends in "bctr", or when pasting together code from multiple sections. The space allocated for the patch area didn't allow for this case, while the code in relocate_section performing the patches did, leading to an assertion failure. * elf32-ppc.c (ppc_elf_relax_section): Fix off by one error.
This commit is contained in:
parent
70cc888ddc
commit
6128f9cf2b
|
@ -1,3 +1,7 @@
|
|||
2014-08-30 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* elf32-ppc.c (ppc_elf_relax_section): Fix off by one error.
|
||||
|
||||
2014-08-29 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* elf64-ppc.c (ppc64_elf_relocate_section): Report a different
|
||||
|
|
|
@ -7165,7 +7165,7 @@ ppc_elf_relax_section (bfd *abfd,
|
|||
bfd_vma pagesize = (bfd_vma) 1 << htab->params->pagesize_p2;
|
||||
|
||||
addr = isec->output_section->vma + isec->output_offset;
|
||||
end_addr = addr + trampoff - 1;
|
||||
end_addr = addr + trampoff;
|
||||
addr &= -pagesize;
|
||||
crossings = ((end_addr & -pagesize) - addr) >> htab->params->pagesize_p2;
|
||||
if (crossings != 0)
|
||||
|
|
Loading…
Reference in New Issue