File mpip.unwinder.patch of Package mpiP

commit ca14b75af545536ca04cc5a1fb19b77b3e213fe4
Author: Nicolas Morey <nmorey@suse.com>
Date:   Thu Sep 5 14:57:46 2024 +0200

    mpip.unwinder
    
    Aarch64 support

diff --git Defs.mak.in Defs.mak.in
index 7406eb610d7f..c3b231798d5f 100644
--- Defs.mak.in
+++ Defs.mak.in
@@ -64,6 +64,9 @@ ifeq ($(OS),OSF1)
 endif
 
 ifeq ($(OS),Linux)
+  ifeq ($(ARCH), aarch64)
+    CPPFLAGS += -DAARCH64
+  endif
   ifeq ($(ARCH),i686)
     CPPFLAGS += -DIA32
   endif
diff --git mpiPi.h mpiPi.h
index 56ce5bd338eb..0b602e31c813 100644
--- mpiPi.h
+++ mpiPi.h
@@ -231,6 +231,12 @@ extern void *MPIR_ToPointer (int idx);
 #define FramePC(fp) ((void *) *(long *) (((long) fp) + (2 * sizeof (void *))))
 #define NextFP(fp) ((void *) *(long *) fp)
 
+/*  AArch64 Linux  */
+#elif defined(Linux) && defined(AARCH64)
+#define ParentFP(jb) ((void*) jb[0].__jmpbuf[10])
+#define FramePC(fp) ((void*)(((void**)fp)[1]))
+#define NextFP(fp) ((void*)((void**)fp)[0])
+
 /*  IA32 Linux  */
 #elif defined(Linux) && defined(IA32)
 #define ParentFP(jb) ((void*) jb[0].__jmpbuf[3])
openSUSE Build Service is sponsored by