https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71951
--- Comment #14 from Wilco <wilco at gcc dot gnu.org> --- Author: wilco Date: Thu Sep 21 12:08:12 2017 New Revision: 253061 URL: https://gcc.gnu.org/viewcvs?rev=253061&root=gcc&view=rev Log: PR71951: Fix unwinding with -fomit-frame-pointer As described in PR71951, if libgcc is built with -fomit-frame-pointer, unwinding crashes, for example while doing a backtrace. The underlying reason is the Dwarf unwinder does not setup the frame pointer register in the initialization code. When later unwinding a function that uses the frame pointer, it tries to read FP using _Unwind_GetGR, and this crashes if has never restored FP. To unwind correctly the first frame must save and restore FP (it is unwound in a special way so that it uses SP instead of FP). This is done by adding -fno-omit-frame-pointer. gcc/ PR target/71951 * config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define. Modified: trunk/gcc/ChangeLog trunk/gcc/config/aarch64/aarch64.h