On Tue, Oct 05, 2021 at 03:32:52PM -0300, Raphael Moreira Zinsly wrote: > Without dwarf2 unwind tables available _Unwind_Backtrace() is not > able to return the full backtrace. > This patch adds a fallback function on powerpc to get the backtrace > by doing a backchain, this code was originally at glibc. > > libgcc/ChangeLog: > > * config/rs6000/linux-unwind.h (struct rt_sigframe): Move it to > outside of get_regs() in order to use it in another function, this > is done twice: for __powerpc64__ and for !__powerpc64__. > (struct trace_arg): New struct. > (struct layout): New struct. > (ppc_backchain_fallback): New function. > * unwind.inc (_Unwind_Backtrace): Look for _URC_NORMAL_STOP code > state and call MD_BACKCHAIN_FALLBACK. > > gcc/testsuite/ChangeLog: > > * gcc.target/powerpc/unwind-backchain.c: New test. > --- > .../gcc.target/powerpc/unwind-backchain.c | 24 +++++ > libgcc/config/rs6000/linux-unwind.h | 102 +++++++++++++++--- > libgcc/unwind.inc | 14 ++- > 3 files changed, 124 insertions(+), 16 deletions(-) > create mode 100644 gcc/testsuite/gcc.target/powerpc/unwind-backchain.c
So what is new or different in v3 compared to v2? Segher