Enable trap recovery on NetBSD.
authorTaylor R Campbell <campbell@mumble.net>
Thu, 22 Jul 2010 19:51:14 +0000 (19:51 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Thu, 22 Jul 2010 19:51:14 +0000 (19:51 +0000)
Not really tested, but this triggers only when you're already
screwed, so enabling trap recovery probably won't make anything
worse.

src/microcode/uxtrap.h

index 052c2253f8ca60c3900ced43136979e659e94dee..05cc4fb8d2b2a6d9fd4be9c9685f8661e6c20e2e 100644 (file)
@@ -642,12 +642,12 @@ typedef struct
    reasonable guess.  */
 
 #if defined(__NetBSD__)
-
 #include <sys/param.h>
-
 #if defined(__NetBSD_Version__) && __NetBSD_Version__ >= 200000000
 
 #  define HAVE_SIGACTION_SIGINFO_SIGNALS
+#  define HAVE_SIGCONTEXT
+
 #  include <sys/siginfo.h>
 #  include <sys/ucontext.h>
 
@@ -655,7 +655,7 @@ typedef struct
 #    include <i386/mcontext.h>
 #    define SIGCONTEXT_NREGS _NGREG
 #    define __SIGCONTEXT_REG(scp, ir)           \
-  ((((scp) -> uc_mcontext) -> __gregs) [(ir)])
+  ((((scp) -> uc_mcontext) . __gregs) [(ir)])
 #    define SIGCONTEXT_FIRST_REG(scp) (& (__SIGCONTEXT_REG (scp, _REG_GS)))
 #    define SIGCONTEXT_RFREE(scp) (__SIGCONTEXT_REG (scp, _REG_EDI))
 #  endif