summaryrefslogtreecommitdiff
path: root/emulators
diff options
context:
space:
mode:
authortsutsui <tsutsui@pkgsrc.org>2013-06-27 14:09:35 +0000
committertsutsui <tsutsui@pkgsrc.org>2013-06-27 14:09:35 +0000
commit3da187cd9c4865c52dabc85275b93ad772e7e194 (patch)
tree3060e8d95d17ef754d5d406451ff7eb0afa054a0 /emulators
parentc18c20576fe7bb74d8c226d309a890e164651367 (diff)
downloadpkgsrc-3da187cd9c4865c52dabc85275b93ad772e7e194.tar.gz
Make qemu-1.4.2 build on NetBSD/arm 6.1
NetBSD/i386 6.1 on QEMU on NetBSD/hpcarm 6.1 on W-ZERO3 somewhat works.
Diffstat (limited to 'emulators')
-rw-r--r--emulators/qemu/distinfo3
-rw-r--r--emulators/qemu/patches/patch-user-exec.c38
2 files changed, 40 insertions, 1 deletions
diff --git a/emulators/qemu/distinfo b/emulators/qemu/distinfo
index 5653abbf9fa..00d1ecb0b09 100644
--- a/emulators/qemu/distinfo
+++ b/emulators/qemu/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.82 2013/06/16 18:27:25 tsutsui Exp $
+$NetBSD: distinfo,v 1.83 2013/06/27 14:09:35 tsutsui Exp $
SHA1 (qemu-1.4.2.tar.bz2) = 7e01e57e7385dba76125f69829aa78e98acdce4f
RMD160 (qemu-1.4.2.tar.bz2) = 4b136a6f2192b07aaf04270a60c9326635d8865a
@@ -13,4 +13,5 @@ SHA1 (patch-ioport.c) = a8f85248039de4d572f3af754d1e29ef9f83d8d7
SHA1 (patch-memory.c) = ca15c0cfd20b54bee0f8ec769a9047b5cd76e4f3
SHA1 (patch-net_tap-bsd.c) = 4d21ea8dd639db2a98ef9e341c3b863c9be965e2
SHA1 (patch-slirp_tcp__subr.c) = c134e0fe0ce6b8fc92a630c98891b4c3e56cc861
+SHA1 (patch-user-exec.c) = 6400647b4a08885ebd4bd8f57d19d3fdb66ae434
SHA1 (patch-util_hbitmap.c) = 8c3d42d9b594efc1b5eb0ccfb5d110bd63eaa9f0
diff --git a/emulators/qemu/patches/patch-user-exec.c b/emulators/qemu/patches/patch-user-exec.c
new file mode 100644
index 00000000000..f5be2292bb7
--- /dev/null
+++ b/emulators/qemu/patches/patch-user-exec.c
@@ -0,0 +1,38 @@
+$NetBSD: patch-user-exec.c,v 1.1 2013/06/27 14:09:35 tsutsui Exp $
+
+Add OS dependent code for NetBSD/arm.
+
+--- user-exec.c.orig 2013-05-24 13:37:58.000000000 +0000
++++ user-exec.c
+@@ -428,19 +428,31 @@ int cpu_signal_handler(int host_signum,
+
+ #elif defined(__arm__)
+
++#if defined(__NetBSD__)
++#include <ucontext.h>
++#endif
++
+ int cpu_signal_handler(int host_signum, void *pinfo,
+ void *puc)
+ {
+ siginfo_t *info = pinfo;
++#if defined(__NetBSD__)
++ ucontext_t *uc = puc;
++#else
+ struct ucontext *uc = puc;
++#endif
+ unsigned long pc;
+ int is_write;
+
++#if defined(__NetBSD__)
++ pc = uc->uc_mcontext.__gregs[_REG_R15];
++#else
+ #if defined(__GLIBC__) && (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ <= 3))
+ pc = uc->uc_mcontext.gregs[R15];
+ #else
+ pc = uc->uc_mcontext.arm_pc;
+ #endif
++#endif
+ /* XXX: compute is_write */
+ is_write = 0;
+ return handle_cpu_signal(pc, (unsigned long)info->si_addr,