diff options
Diffstat (limited to 'lang/kaffe/patches/patch-ag')
-rw-r--r-- | lang/kaffe/patches/patch-ag | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/lang/kaffe/patches/patch-ag b/lang/kaffe/patches/patch-ag new file mode 100644 index 00000000000..7ab83b18392 --- /dev/null +++ b/lang/kaffe/patches/patch-ag @@ -0,0 +1,84 @@ +$NetBSD: patch-ag,v 1.7 2009/07/10 19:58:12 abs Exp $ + +(unfortunately) incomplete patch to update NetBSD/m68k to be closer to working + +--- config/m68k/netbsd1/md.h.orig 2009-02-05 20:12:32.000000000 +0000 ++++ config/m68k/netbsd1/md.h +@@ -17,34 +17,65 @@ + #include "m68k/common.h" + #include "m68k/threads.h" + ++#if defined(HAVE_SIGNAL_H) ++#include <signal.h> ++#endif ++#if defined(HAVE_SYS_RESOURCE_H) ++#include <sys/resource.h> ++#endif ++#if defined(HAVE_SYS_SIGNAL_H) ++#include <sys/signal.h> ++#endif ++#if defined(HAVE_UNISTD_H) ++#include <unistd.h> ++#endif ++ + /* + * Alignment in structure is 8 bytes packed + */ + #define ALIGNMENT_OF_SIZE(S) ((S) < 8 ? (S) : 8) + + /* +- * Stack offset. +- * This is the offset into the setjmp buffer where the stack pointer is +- * stored. ++ * Redefine stack pointer offset. + */ +-#define SP_OFFSET 2 ++#undef SP_OFFSET ++#define SP_OFFSET 2 + +-/**/ +-/* Extra exception handling information. */ +-/**/ +-#include <signal.h> ++#if defined(HAVE_SYS_UCONTEXT_H) ++#include <sys/ucontext.h> + +-#define SIGNAL_ARGS(sig, sc) int sig, int code, struct sigcontext *sc ++/* older netbsd's could have this macro missing, so we provide it */ ++#ifndef _UC_MACHINE_SP ++#define _UC_MACHINE_SP(uc) ((uc)->uc_mcontext.__gregs[_REG_UESP]) ++#endif ++#ifndef _UC_MACHINE_PC ++#define _UC_MACHINE_PC(uc) ((uc)->uc_mcontext.__gregs[_REG_EIP]) ++#endif ++ ++#define SIGCONTEXT ucontext_t ++ ++#define SIGNAL_ARGS(sig, sc) int sig, siginfo_t *__si, void *sc ++#define SIGNAL_CONTEXT_POINTER(scp) SIGCONTEXT *scp ++#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(scp) (scp) +-#define SIGNAL_PC(scp) ((uintp)(scp)->sc_pc) ++#define GET_SIGNAL_CONTEXT_POINTER(sc) (sc) ++#define SIGNAL_PC(scp) (scp)->sc_pc ++#define STACK_POINTER(scp) (scp)->sc_sp + +-#include "kaffe-unix-stack.h" ++#endif + + #if defined(TRANSLATOR) + #include "jit-md.h" + #endif + ++#include "kaffe-unix-stack.h" ++ + /* + * sysdepCallMethod supports: + * |