diff options
author | nia <nia@pkgsrc.org> | 2021-09-05 20:58:16 +0000 |
---|---|---|
committer | nia <nia@pkgsrc.org> | 2021-09-05 20:58:16 +0000 |
commit | 21e8404c6083fa9fa8f4d4e17b3a26a23c48b03b (patch) | |
tree | 4db6eb5044d8ec61e8759b7b2f0fc378dab9a096 /emulators | |
parent | 84b2364e5d9d5403ad694840f05fc0be1cc8c38c (diff) | |
download | pkgsrc-21e8404c6083fa9fa8f4d4e17b3a26a23c48b03b.tar.gz |
qemu: Re-add NetBSD 9 NVMM support.
Diffstat (limited to 'emulators')
-rw-r--r-- | emulators/qemu/Makefile | 3 | ||||
-rw-r--r-- | emulators/qemu/distinfo | 5 | ||||
-rw-r--r-- | emulators/qemu/patches/patch-meson.build | 18 | ||||
-rw-r--r-- | emulators/qemu/patches/patch-target_i386_nvmm_nvmm-all.c | 47 |
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 + } + } + |