summaryrefslogtreecommitdiff
path: root/emulators
diff options
context:
space:
mode:
authornia <nia@pkgsrc.org>2021-09-05 20:58:16 +0000
committernia <nia@pkgsrc.org>2021-09-05 20:58:16 +0000
commit21e8404c6083fa9fa8f4d4e17b3a26a23c48b03b (patch)
tree4db6eb5044d8ec61e8759b7b2f0fc378dab9a096 /emulators
parent84b2364e5d9d5403ad694840f05fc0be1cc8c38c (diff)
downloadpkgsrc-21e8404c6083fa9fa8f4d4e17b3a26a23c48b03b.tar.gz
qemu: Re-add NetBSD 9 NVMM support.
Diffstat (limited to 'emulators')
-rw-r--r--emulators/qemu/Makefile3
-rw-r--r--emulators/qemu/distinfo5
-rw-r--r--emulators/qemu/patches/patch-meson.build18
-rw-r--r--emulators/qemu/patches/patch-target_i386_nvmm_nvmm-all.c47
4 files changed, 62 insertions, 11 deletions
diff --git a/emulators/qemu/Makefile b/emulators/qemu/Makefile
index e0ad6015c07..ab923425f6e 100644
--- a/emulators/qemu/Makefile
+++ b/emulators/qemu/Makefile
@@ -1,7 +1,8 @@
-# $NetBSD: Makefile,v 1.284 2021/08/29 01:53:06 mcf Exp $
+# $NetBSD: Makefile,v 1.285 2021/09/05 20:58:16 nia Exp $
DISTNAME= qemu-6.1.0
PKGNAME= ${DISTNAME:S/-rc/rc/}
+PKGREVISION= 1
CATEGORIES= emulators
MASTER_SITES= https://download.qemu.org/
EXTRACT_SUFX= .tar.xz
diff --git a/emulators/qemu/distinfo b/emulators/qemu/distinfo
index 5bc7a49b8d3..14c6abefb92 100644
--- a/emulators/qemu/distinfo
+++ b/emulators/qemu/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.183 2021/08/27 03:32:37 ryoon Exp $
+$NetBSD: distinfo,v 1.184 2021/09/05 20:58:16 nia Exp $
SHA1 (palcode-clipper-qemu-5.2.0nb8) = ddbf1dffb7c2b2157e0bbe9fb7db7e57105130b1
RMD160 (palcode-clipper-qemu-5.2.0nb8) = 3f9fe19a40f7ca72ecfe047d1449e55b63cba3ee
@@ -21,7 +21,8 @@ SHA1 (patch-hw_rtc_mc146818rtc.c) = cc7a3b28010966b65b7a16db756226ac2669f310
SHA1 (patch-hw_scsi_scsi-disk.c) = fdbf2f962a6dcb1a115a7f8a5b8790ff9295fb33
SHA1 (patch-hw_usb_dev-mtp.c) = 94ddf53a41cc75810cfece1b8aef1831fab4ce43
SHA1 (patch-include_sysemu_nvmm.h) = 2cf9ea36c77570136b0678fe3b1c126ca7fa04cd
-SHA1 (patch-meson.build) = 086400b3eebd0d5ce91af7779fa4f2a56d953542
+SHA1 (patch-meson.build) = 35f4d563e99dcc014a011bb4c7cddefac852d4cf
SHA1 (patch-net_tap-solaris.c) = cc953c9a624dd55ace4e130d0b31bbfb956c17d5
SHA1 (patch-roms_u-boot-sam460ex_Makefile) = 3a1bbf19b1422c10ebdd819eb0b711fafc78e2f2
+SHA1 (patch-target_i386_nvmm_nvmm-all.c) = 8f4b51a6460090d7826af1ae02840a208767345b
SHA1 (patch-target_sparc_translate.c) = 7ec2add2fd808facb48b9a66ccc345599251bf76
diff --git a/emulators/qemu/patches/patch-meson.build b/emulators/qemu/patches/patch-meson.build
index 00da5d79d6f..39e66efdd91 100644
--- a/emulators/qemu/patches/patch-meson.build
+++ b/emulators/qemu/patches/patch-meson.build
@@ -1,22 +1,24 @@
-$NetBSD: patch-meson.build,v 1.8 2021/08/27 03:32:37 ryoon Exp $
+$NetBSD: patch-meson.build,v 1.9 2021/09/05 20:58:16 nia Exp $
* Add NetBSD support.
* Detect iconv in libc properly for pkgsrc (pkgsrc removes -liconv)
to fix qemu-system-aarch64 link.
* Detect curses (non-ncurses{,w} too)
---- meson.build.orig 2021-08-04 16:29:08.000000000 +0000
+--- meson.build.orig 2021-08-24 17:35:41.000000000 +0000
+++ meson.build
-@@ -237,7 +237,7 @@ if not get_option('hax').disabled()
+@@ -237,9 +237,7 @@ if not get_option('hax').disabled()
endif
endif
if targetos == 'netbsd'
- if cc.has_header_symbol('nvmm.h', 'nvmm_cpu_stop', required: get_option('nvmm'))
-+ if cc.has_header_symbol('nvmm.h', 'nvmm_vcpu_stop', required: get_option('nvmm'))
- nvmm = cc.find_library('nvmm', required: get_option('nvmm'))
- endif
+- nvmm = cc.find_library('nvmm', required: get_option('nvmm'))
+- endif
++ nvmm = cc.find_library('nvmm', required: get_option('nvmm'))
if nvmm.found()
-@@ -613,7 +613,7 @@ if have_system and not get_option('curse
+ accelerators += 'CONFIG_NVMM'
+ endif
+@@ -613,7 +611,7 @@ if have_system and not get_option('curse
has_curses_h = cc.has_header('curses.h', args: curses_compile_args)
endif
if has_curses_h
@@ -25,7 +27,7 @@ $NetBSD: patch-meson.build,v 1.8 2021/08/27 03:32:37 ryoon Exp $
foreach curses_libname : curses_libname_list
libcurses = cc.find_library(curses_libname,
required: false,
-@@ -631,7 +631,7 @@ if have_system and not get_option('curse
+@@ -631,7 +629,7 @@ if have_system and not get_option('curse
endif
endif
if not get_option('iconv').disabled()
diff --git a/emulators/qemu/patches/patch-target_i386_nvmm_nvmm-all.c b/emulators/qemu/patches/patch-target_i386_nvmm_nvmm-all.c
new file mode 100644
index 00000000000..06d7d083180
--- /dev/null
+++ b/emulators/qemu/patches/patch-target_i386_nvmm_nvmm-all.c
@@ -0,0 +1,47 @@
+$NetBSD: patch-target_i386_nvmm_nvmm-all.c,v 1.4 2021/09/05 20:58:16 nia Exp $
+
+Re-add NetBSD 9 support.
+
+--- target/i386/nvmm/nvmm-all.c.orig 2021-08-24 17:35:41.000000000 +0000
++++ target/i386/nvmm/nvmm-all.c
+@@ -750,7 +750,11 @@ nvmm_vcpu_loop(CPUState *cpu)
+ nvmm_vcpu_pre_run(cpu);
+
+ if (qatomic_read(&cpu->exit_request)) {
++#if NVMM_USER_VERSION >= 2
+ nvmm_vcpu_stop(vcpu);
++#else
++ qemu_cpu_kick_self();
++#endif
+ }
+
+ /* Read exit_request before the kernel reads the immediate exit flag */
+@@ -767,6 +771,7 @@ nvmm_vcpu_loop(CPUState *cpu)
+ switch (exit->reason) {
+ case NVMM_VCPU_EXIT_NONE:
+ break;
++#if NVMM_USER_VERSION >= 2
+ case NVMM_VCPU_EXIT_STOPPED:
+ /*
+ * The kernel cleared the immediate exit flag; cpu->exit_request
+@@ -775,6 +780,7 @@ nvmm_vcpu_loop(CPUState *cpu)
+ smp_wmb();
+ qcpu->stop = true;
+ break;
++#endif
+ case NVMM_VCPU_EXIT_MEMORY:
+ ret = nvmm_handle_mem(mach, vcpu);
+ break;
+@@ -888,8 +894,12 @@ nvmm_ipi_signal(int sigcpu)
+ {
+ if (current_cpu) {
+ struct qemu_vcpu *qcpu = get_qemu_vcpu(current_cpu);
++#if NVMM_USER_VERSION >= 2
+ struct nvmm_vcpu *vcpu = &qcpu->vcpu;
+ nvmm_vcpu_stop(vcpu);
++#else
++ qcpu->stop = true;
++#endif
+ }
+ }
+