diff options
author | tsutsui <tsutsui@pkgsrc.org> | 2013-06-27 14:09:35 +0000 |
---|---|---|
committer | tsutsui <tsutsui@pkgsrc.org> | 2013-06-27 14:09:35 +0000 |
commit | 3da187cd9c4865c52dabc85275b93ad772e7e194 (patch) | |
tree | 3060e8d95d17ef754d5d406451ff7eb0afa054a0 /emulators | |
parent | c18c20576fe7bb74d8c226d309a890e164651367 (diff) | |
download | pkgsrc-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/distinfo | 3 | ||||
-rw-r--r-- | emulators/qemu/patches/patch-user-exec.c | 38 |
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, |