My PPC64_OPT_LOCALENTRY patch of June 1, git commit
f378ab099d, and
the later gold change, git commit
7ee7ff7015, added an insn in
__glink_PLTresolve which needs a corresponding adjustment in the
eh_frame info for asynchronous exceptions to unwind correctly.
It would have been OK for both ABIs to use +5 for the advance before
restore of LR, since we can put the DW_CFA_restore_extended on any
insn after the actual restore and before the r12/r0 copy is clobbered,
but it's slightly better to delay as much as possible. There are
then more addresses where fewer CFA program insns are executed.
bfd/
* elf64-ppc.c (ppc64_elf_size_stubs): Correct advance to
restore of LR.
gold/
* powerpc.cc (glink_eh_frame_fde_64v2): Correct advance to
restore of LR.
(glink_eh_frame_fde_64v1): Advance to restore of LR at latest
possible insn.
+2017-07-23 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (ppc64_elf_size_stubs): Correct advance to
+ restore of LR.
+
2017-07-19 Szabolcs Nagy <szabolcs.nagy@arm.com>
PR ld/18841
*p++ = DW_CFA_register;
*p++ = 65;
*p++ = htab->opd_abi ? 12 : 0;
- *p++ = DW_CFA_advance_loc + 4;
+ *p++ = DW_CFA_advance_loc + (htab->opd_abi ? 5 : 7);
*p++ = DW_CFA_restore_extended;
*p++ = 65;
p += ((24 + align - 1) & -align) - 24;
+2017-07-23 Alan Modra <amodra@gmail.com>
+
+ * powerpc.cc (glink_eh_frame_fde_64v2): Correct advance to
+ restore of LR.
+ (glink_eh_frame_fde_64v1): Advance to restore of LR at latest
+ possible insn.
+
2017-07-18 Nick Clifton <nickc@redhat.com>
PR 21775
0, // Augmentation size.
elfcpp::DW_CFA_advance_loc + 1,
elfcpp::DW_CFA_register, 65, 12,
- elfcpp::DW_CFA_advance_loc + 4,
+ elfcpp::DW_CFA_advance_loc + 5,
elfcpp::DW_CFA_restore_extended, 65
};
0, // Augmentation size.
elfcpp::DW_CFA_advance_loc + 1,
elfcpp::DW_CFA_register, 65, 0,
- elfcpp::DW_CFA_advance_loc + 4,
+ elfcpp::DW_CFA_advance_loc + 7,
elfcpp::DW_CFA_restore_extended, 65
};