Subject: Re: lib/30585: Sigcontext misfilled in pthread mode.
To: None <gnats-bugs@netbsd.org>
From: Matthias Drochner <M.Drochner@fz-juelich.de>
List: netbsd-bugs
Date: 06/27/2005 14:59:13
This is a multipart MIME message.

--==_Exmh_73218017620350
Content-Type: text/plain; charset=us-ascii


Here are 2 patches for the pkgsrc kaffe.
Can you give them a try?

best regards
Matthias



--==_Exmh_73218017620350
Content-Type: text/plain ; name="patch-af"; charset=us-ascii
Content-Description: patch-af
Content-Disposition: attachment; filename="patch-af"

$NetBSD$

--- config/i386/netbsd1/md.h.orig	2005-02-09 20:46:44.000000000 +0100
+++ config/i386/netbsd1/md.h
@@ -19,16 +19,26 @@
 #include "i386/sysdepCallMethod.h"
 #include "i386/threads.h"
 
+#include <signal.h>
+
 /*
  * Redefine stack pointer offset.
  */
 #undef SP_OFFSET
 #define SP_OFFSET 2
 
+#ifdef SA_SIGINFO
+#include <sys/ucontext.h>
+#define SIGNAL_ARGS(sig, sc) int sig, siginfo_t *__si, void *sc
+#define SIGNAL_CONTEXT_POINTER(scp) ucontext_t *scp
+#define GET_SIGNAL_CONTEXT_POINTER(sc) (sc)
+#define SIGNAL_PC(scp) ((ucontext_t *)(scp))->uc_mcontext.__gregs[_REG_EIP]
+#else
 #define SIGNAL_ARGS(sig, sc) int sig, int __code, struct sigcontext *sc
 #define SIGNAL_CONTEXT_POINTER(scp) struct sigcontext *scp
 #define GET_SIGNAL_CONTEXT_POINTER(sc) (sc)
 #define SIGNAL_PC(scp) (scp)->sc_pc
+#endif
 
 #if defined(TRANSLATOR)
 #include "jit-md.h"

--==_Exmh_73218017620350
Content-Type: text/plain ; name="patch-ag"; charset=us-ascii
Content-Description: patch-ag
Content-Disposition: attachment; filename="patch-ag"

$NetBSD$

--- config/i386/netbsd1/jit-md.h.orig	2005-02-09 21:25:34.000000000 +0100
+++ config/i386/netbsd1/jit-md.h
@@ -26,7 +26,7 @@
 
 /* Get the first exception frame from a signal handler */
 #define	EXCEPTIONFRAME(f, c)						\
-	(f).retbp = (c)->sc_ebp;					\
-	(f).retpc = (c)->sc_eip + 1
+	(f).retbp = ((ucontext_t *)(c))->uc_mcontext.__gregs[_REG_EBP];					\
+	(f).retpc = ((ucontext_t *)(c))->uc_mcontext.__gregs[_REG_EIP] + 1
 
 #endif

--==_Exmh_73218017620350--