0010-csky-dwarf-alt-frame-return-column.patch 829 B

12345678910111213141516
  1. --- a/gcc/config/csky/csky.h 2026-05-31 20:55:03.197855806 +0000
  2. +++ gcc/config/csky/csky.h 2026-05-31 20:55:03.204856192 +0000
  3. @@ -1007,6 +1007,13 @@
  4. define DWARF_FRAME_RETURN_COLUMN to DWARF_FRAME_REGNUM. */
  5. #define DWARF_FRAME_RETURN_COLUMN DWARF_FRAME_REGNUM (CSKY_LR_REGNUM)
  6. +/* Signal frames (config/csky/linux-unwind.h) put the interrupted PC in
  7. + DWARF column 32, which is not a hard register and thus is left unsized
  8. + in dwarf_reg_size_table. Declare it as the alternate return column so
  9. + init_dwarf_reg_size_table sizes it; otherwise _Unwind_GetGR aborts when
  10. + unwinding through a signal frame (e.g. pthread cancellation). */
  11. +#define DWARF_ALT_FRAME_RETURN_COLUMN 32
  12. +
  13. /* Use r0 and r1 to pass exception handling information. */
  14. #define EH_RETURN_DATA_REGNO(N) ((N) < 2 ? N : INVALID_REGNUM)