https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=3dbdee52e28a11b2e0dea2bdc69e2a2f9b83a9b2

commit 3dbdee52e28a11b2e0dea2bdc69e2a2f9b83a9b2
Author:     Thirumalai Nagalingam <[email protected]>
AuthorDate: Fri Dec 19 18:15:34 2025 +0530
Commit:     Corinna Vinschen <[email protected]>
CommitDate: Fri Jan 16 19:48:53 2026 +0100

    Cygwin: gendef: add ARM64 stub for $fe in gendef
    
    This patch adds ARM64 stub with stack allocation and SEH unwind
    directives in gendef for $fe routine.
    
    Signed-off-by: Evgeny Karpov <[email protected]>
    Signed-off-by: Thirumalai Nagalingam 
<[email protected]>

Diff:
---
 winsup/cygwin/scripts/gendef | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/winsup/cygwin/scripts/gendef b/winsup/cygwin/scripts/gendef
index d60d45431480..813857886062 100755
--- a/winsup/cygwin/scripts/gendef
+++ b/winsup/cygwin/scripts/gendef
@@ -115,7 +115,18 @@ EOF
        $res = <<EOF;
        .extern $func
        .global $fe
+       .seh_proc $fe
 $fe:
+       sub sp, sp, 16                  // allocate stack, 16-byte alligned
+       .seh_stackalloc 16              // SEH: describe stack allocation
+       .seh_endprologue                // end of prologue for unwinder
+       adrp x9, $func                  // load page address of func
+       add x9, x9, :lo12:$func         // compute full address of func
+       str x9, [sp, 0]                 // store func pointer on stack
+       adrp x9, $sigfe_func            // load page address of sigfe_func
+       add x9, x9, :lo12:$sigfe_func   // compute final address of sigfe_func
+       br x9                           // branch to x9
+       .seh_endproc
 EOF
     }

Reply via email to