Index: libphobos/libdruntime/core/sys/posix/ucontext.d
--- libphobos/libdruntime/core/sys/posix/ucontext.d.orig
+++ libphobos/libdruntime/core/sys/posix/ucontext.d
@@ -1252,6 +1252,22 @@ else version (OpenBSD)
             void*   sc_fpstate; // union savefpu*
         }
     }
+    else version (MIPS64)
+    {
+        struct sigcontext
+        {
+            c_long     sc_cookie;
+            c_long     sc_mask;
+            c_long     sc_pc;
+            c_long[32] sc_regs;
+            c_long     mullo;
+            c_long     mulhi;
+            c_long[33] sc_fpregs;
+            c_long     sc_fpused;
+            c_long     sc_fpc_eir;
+            c_long[8]  xxx;
+        }
+    }
     else version (PPC)
     {
         private struct trapframe
@@ -1273,6 +1289,44 @@ else version (OpenBSD)
             c_long    sc_cookie;
             int       sc_mask;
             trapframe sc_frame;
+        }
+    }
+    else version (PPC64)
+    {
+        struct sigcontext
+        {
+            c_long       sc_cookie;
+            int          sc_mask;
+            c_long[32]   sc_reg;
+            c_long       sc_lr;
+            c_long       sc_cr;
+            c_long       sc_xer;
+            c_long       sc_ctr;
+            c_long       sc_pc;
+            c_long       sc_ps;
+            c_long       sc_vrsave;
+            ulong[2][64] sc_vsx; // __uint128_t
+            ulong        sc_fpscr;
+            ulong        sc_vcsr;
+        }
+    }
+    else version (RISCV64)
+    {
+        struct sigcontext
+        {
+            int        __sc_unused;
+            int        sc_mask;
+            c_long     sc_ra;
+            c_long     sc_sp;
+            c_long     sc_gp;
+            c_long     sc_tp;
+            c_long[7]  sc_t;
+            c_long[12] sc_s;
+            c_long[8]  sc_a;
+            c_long     sc_sepc;
+            c_long[32] sc_f;
+            c_long     sc_fcsr;
+            c_long     sc_cookie;
         }
     }
     else version (SPARC64)
