[kaffe] CVS kaffe (guilhem): NetBSD 1.6 fix
Kaffe CVS
cvs-commits at kaffe.org
Mon Jul 11 07:29:01 PDT 2005
PatchSet 6721
Date: 2005/07/11 14:23:51
Author: guilhem
Branch: HEAD
Tag: (none)
Log:
NetBSD 1.6 fix
Members:
ChangeLog:1.4245->1.4246
config/i386/netbsd1/jit-md.h:1.3->1.4
config/i386/netbsd1/md.h:1.12->1.13
Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.4245 kaffe/ChangeLog:1.4246
--- kaffe/ChangeLog:1.4245 Sun Jul 10 13:49:27 2005
+++ kaffe/ChangeLog Mon Jul 11 14:23:51 2005
@@ -1,3 +1,9 @@
+2005-07-11 Guilhem Lavaux <guilhem at kaffe.org>
+
+ * config/i386/netbsd1/md.h,
+ config/i386/netbsd1/jit-md.h: Use old sigcontext if ucontext.h is not
+ available.
+
2005-07-10 Guilhem Lavaux <guilhem at kaffe.org>
* configure.ac: Check for sys/ucontext.h
Index: kaffe/config/i386/netbsd1/jit-md.h
diff -u kaffe/config/i386/netbsd1/jit-md.h:1.3 kaffe/config/i386/netbsd1/jit-md.h:1.4
--- kaffe/config/i386/netbsd1/jit-md.h:1.3 Mon Jul 4 00:53:16 2005
+++ kaffe/config/i386/netbsd1/jit-md.h Mon Jul 11 14:23:53 2005
@@ -25,9 +25,15 @@
#define EXCEPTIONPROTO SIGNAL_ARGS(sig, ctx)
/* Get the first exception frame from a signal handler */
+#if defined(HAVE_SYS_UCONTEXT_H)
#define EXCEPTIONFRAME(f, c) \
(f).retbp = _UC_MACHINE_SP(((ucontext_t *)(c))); \
(f).retpc = _UC_MACHINE_PC(((ucontext_t *)(c)))
+#else
+#define EXCEPTIONFRAME(f, c) \
+ (f).retbp = (c)->sc_ebp; \
+ (f).retpc = (c)->sc_eip + 1;
+#endif
#endif
Index: kaffe/config/i386/netbsd1/md.h
diff -u kaffe/config/i386/netbsd1/md.h:1.12 kaffe/config/i386/netbsd1/md.h:1.13
--- kaffe/config/i386/netbsd1/md.h:1.12 Sun Jul 10 13:49:34 2005
+++ kaffe/config/i386/netbsd1/md.h Mon Jul 11 14:23:53 2005
@@ -32,9 +32,14 @@
#endif
+/*
+ * Redefine stack pointer offset.
+ */
+#undef SP_OFFSET
+#define SP_OFFSET 2
+
#if defined(HAVE_SYS_UCONTEXT_H)
#include <sys/ucontext.h>
-#endif
/* older netbsd's could have this macro missing, so we provide it */
#ifdef _UC_MACHINE_SP
@@ -44,20 +49,23 @@
#define _UC_MACHINE_PC(uc) ((uc)->uc_mcontext.__gregs[_REG_EIP])
#endif
-
-/*
- * Redefine stack pointer offset.
- */
-#undef SP_OFFSET
-#define SP_OFFSET 2
-
#define SIGCONTEXT ucontext_t
#define SIGNAL_ARGS(sig, sc) int sig, siginfo_t *__si, void *sc
#define SIGNAL_CONTEXT_POINTER(scp) SIGCONTEXT *scp
-#define GET_SIGNAL_CONTEXT_POINTER(sc) (sc)
#define SIGNAL_PC(scp) _UC_MACHINE_PC(((SIGCONTEXT *)(scp)))
#define STACK_POINTER(scp) _UC_MACHINE_SP(((SIGCONTEXT *)(scp)))
+#define GET_SIGNAL_CONTEXT_POINTER(sc) (sc)
+
+#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
+#define STACK_POINTER(scp) (scp)->sc_sp
+
+#endif
#if defined(TRANSLATOR)
#include "jit-md.h"
More information about the kaffe
mailing list