PowerPC64 stubs don't match calculated size
After the PR 21411 fix, the linker generated .eh_frame for ppc64 glink can be edited by the generic code. The sequence of events goes something like: 1) Some object file adds .eh_frame aligned to 8, making the output .eh_frame aligned to at least 8, so linker generated .eh_frame FDE is padded to an 8 byte boundary. 2) All .eh_frame past the glink .eh_frame is garbage collected. 3) Generic code detects that last FDE (the glink .eh_frame) doesn't need to be padded to an 8 byte boundary, reducing size from 88 to 84. 4) elf64-ppc.c check fails. PR 21441 * elf64-ppc.c (ppc64_elf_build_stubs): Don't check glink_eh_frame size.
This commit is contained in:
parent
3d13f3e9bd
commit
25516cc573
@ -1,3 +1,9 @@
|
||||
2017-09-19 Alan Modra <amodra@gmail.com>
|
||||
|
||||
PR 21441
|
||||
* elf64-ppc.c (ppc64_elf_build_stubs): Don't check glink_eh_frame
|
||||
size.
|
||||
|
||||
2017-09-19 Alan Modra <amodra@gmail.com>
|
||||
|
||||
PR 22150
|
||||
|
@ -13411,12 +13411,7 @@ ppc64_elf_build_stubs (struct bfd_link_info *info,
|
||||
break;
|
||||
}
|
||||
|
||||
/* Note that the glink_eh_frame check here is not only testing that
|
||||
the generated size matched the calculated size but also that
|
||||
bfd_elf_discard_info didn't make any changes to the section. */
|
||||
if (group != NULL
|
||||
|| (htab->glink_eh_frame != NULL
|
||||
&& htab->glink_eh_frame->rawsize != htab->glink_eh_frame->size))
|
||||
if (group != NULL)
|
||||
{
|
||||
htab->stub_error = TRUE;
|
||||
info->callbacks->einfo (_("%P: stubs don't match calculated size\n"));
|
||||
|
Loading…
x
Reference in New Issue
Block a user