https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=c6e781745b74ed1d0709339ad074c92b2ff5b59f
commit c6e781745b74ed1d0709339ad074c92b2ff5b59f Author: Thirumalai Nagalingam <[email protected]> AuthorDate: Sat Dec 6 18:14:08 2025 +0530 Commit: Corinna Vinschen <[email protected]> CommitDate: Fri Jan 16 19:48:53 2026 +0100 Cygwin: gendef: Implement siglongjmp for AArch64 Co-authored-by: Radek BartoĊ <[email protected]> Signed-off-by: Thirumalai Nagalingam <[email protected]> Diff: --- winsup/cygwin/scripts/gendef | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/winsup/cygwin/scripts/gendef b/winsup/cygwin/scripts/gendef index adb3ed21741c..b0e4d2a3e507 100755 --- a/winsup/cygwin/scripts/gendef +++ b/winsup/cygwin/scripts/gendef @@ -611,7 +611,33 @@ sigsetjmp: .globl setjmp setjmp: .globl siglongjmp + .seh_proc siglongjmp siglongjmp: + // prologue + stp fp, lr, [sp, #-0x10]! // save FP and LR registers + mov fp, sp // set FP to current SP + .seh_endprologue + mov x19, x1 // save val + mov x20, x0 // save buf + ldr w8, [x20, #0x100] // w8 = buf->savemask + cbz w8, 1f // if savemask == 0, skip + sub sp, sp, #32 // allocate 32 bytes on stack + mov x0, #0 // SIG_SETMASK + mov x1, xzr // newmask = NULL + add x2, x20, #0x108 // &buf->sigmask + bl pthread_sigmask + + add sp, sp, #32 // call frame +1: + mov x0, x20 //buf + mov x1, x19 //val + bl longjmp + + // epilogue + ldp fp, lr, [sp], #0x10 // restore saved FP and LR registers + ret + .seh_endproc + .globl longjmp longjmp: EOF
