qemu: Re-add NetBSD 9 NVMM support.diff -r1.284 -r1.285 pkgsrc/emulators/qemu/Makefile
(nia)
@@ -1,17 +1,18 @@ | @@ -1,17 +1,18 @@ | |||
1 | # $NetBSD: Makefile,v 1.284 2021/08/29 01:53:06 mcf Exp $ | 1 | # $NetBSD: Makefile,v 1.285 2021/09/05 20:58:16 nia Exp $ | |
2 | 2 | |||
3 | DISTNAME= qemu-6.1.0 | 3 | DISTNAME= qemu-6.1.0 | |
4 | PKGNAME= ${DISTNAME:S/-rc/rc/} | 4 | PKGNAME= ${DISTNAME:S/-rc/rc/} | |
5 | PKGREVISION= 1 | |||
5 | CATEGORIES= emulators | 6 | CATEGORIES= emulators | |
6 | MASTER_SITES= https://download.qemu.org/ | 7 | MASTER_SITES= https://download.qemu.org/ | |
7 | EXTRACT_SUFX= .tar.xz | 8 | EXTRACT_SUFX= .tar.xz | |
8 | 9 | |||
9 | MAINTAINER= pkgsrc-users@NetBSD.org | 10 | MAINTAINER= pkgsrc-users@NetBSD.org | |
10 | HOMEPAGE= http://www.qemu-project.org/ | 11 | HOMEPAGE= http://www.qemu-project.org/ | |
11 | COMMENT= CPU emulator using dynamic translation | 12 | COMMENT= CPU emulator using dynamic translation | |
12 | LICENSE= gnu-gpl-v2 AND gnu-lgpl-v2.1 AND mit AND modified-bsd | 13 | LICENSE= gnu-gpl-v2 AND gnu-lgpl-v2.1 AND mit AND modified-bsd | |
13 | 14 | |||
14 | TOOL_DEPENDS+= ninja-build-[0-9]*:../../devel/ninja-build | 15 | TOOL_DEPENDS+= ninja-build-[0-9]*:../../devel/ninja-build | |
15 | 16 | |||
16 | USE_CURSES= resize_term wide | 17 | USE_CURSES= resize_term wide | |
17 | USE_LANGUAGES+= c c++ | 18 | USE_LANGUAGES+= c c++ |
@@ -1,27 +1,28 @@ | @@ -1,27 +1,28 @@ | |||
1 | $NetBSD: distinfo,v 1.183 2021/08/27 03:32:37 ryoon Exp $ | 1 | $NetBSD: distinfo,v 1.184 2021/09/05 20:58:16 nia Exp $ | |
2 | 2 | |||
3 | SHA1 (palcode-clipper-qemu-5.2.0nb8) = ddbf1dffb7c2b2157e0bbe9fb7db7e57105130b1 | 3 | SHA1 (palcode-clipper-qemu-5.2.0nb8) = ddbf1dffb7c2b2157e0bbe9fb7db7e57105130b1 | |
4 | RMD160 (palcode-clipper-qemu-5.2.0nb8) = 3f9fe19a40f7ca72ecfe047d1449e55b63cba3ee | 4 | RMD160 (palcode-clipper-qemu-5.2.0nb8) = 3f9fe19a40f7ca72ecfe047d1449e55b63cba3ee | |
5 | SHA512 (palcode-clipper-qemu-5.2.0nb8) = 33695d6001d86a19793a92d5e31775607c4dfc9ab9eea019ea6c4d543a2e11e8c07f83cca4934811a13ef829b528737ea37d9d2aaf66cba6f2746d44d2aa0b43 | 5 | SHA512 (palcode-clipper-qemu-5.2.0nb8) = 33695d6001d86a19793a92d5e31775607c4dfc9ab9eea019ea6c4d543a2e11e8c07f83cca4934811a13ef829b528737ea37d9d2aaf66cba6f2746d44d2aa0b43 | |
6 | Size (palcode-clipper-qemu-5.2.0nb8) = 159808 bytes | 6 | Size (palcode-clipper-qemu-5.2.0nb8) = 159808 bytes | |
7 | SHA1 (qemu-6.1.0.tar.xz) = aae5ef7761b5f2fc45f0076219f1249da86f94b5 | 7 | SHA1 (qemu-6.1.0.tar.xz) = aae5ef7761b5f2fc45f0076219f1249da86f94b5 | |
8 | RMD160 (qemu-6.1.0.tar.xz) = 00f21e102c9ca70c154b770d0094fd48568bbdd5 | 8 | RMD160 (qemu-6.1.0.tar.xz) = 00f21e102c9ca70c154b770d0094fd48568bbdd5 | |
9 | SHA512 (qemu-6.1.0.tar.xz) = 3378ae21c75b77ee6a759827f1fcf7b2a50a0fef07e3b0e89117108022a8d8655fa977e4d65596f4f24f7c735c6594d44b0c6f69732ea4465e88a7406b1d5d3c | 9 | SHA512 (qemu-6.1.0.tar.xz) = 3378ae21c75b77ee6a759827f1fcf7b2a50a0fef07e3b0e89117108022a8d8655fa977e4d65596f4f24f7c735c6594d44b0c6f69732ea4465e88a7406b1d5d3c | |
10 | Size (qemu-6.1.0.tar.xz) = 111258808 bytes | 10 | Size (qemu-6.1.0.tar.xz) = 111258808 bytes | |
11 | SHA1 (patch-backends_tpm_tpm__ioctl.h) = fbd6c877ad605f7120290efbb0ac653c69f351de | 11 | SHA1 (patch-backends_tpm_tpm__ioctl.h) = fbd6c877ad605f7120290efbb0ac653c69f351de | |
12 | SHA1 (patch-hw-mips-Kconfig) = c7199ad26ac45116ab4d38252db4234ae93bdf9a | 12 | SHA1 (patch-hw-mips-Kconfig) = c7199ad26ac45116ab4d38252db4234ae93bdf9a | |
13 | SHA1 (patch-hw-mips-mipssim.c) = 1f682b74b34398b3ff15f9e7f24a85f4b8bb4853 | 13 | SHA1 (patch-hw-mips-mipssim.c) = 1f682b74b34398b3ff15f9e7f24a85f4b8bb4853 | |
14 | SHA1 (patch-hw_core_uboot__image.h) = 17eef02349343c5fcfb7a4069cb6f8fd11efcb59 | 14 | SHA1 (patch-hw_core_uboot__image.h) = 17eef02349343c5fcfb7a4069cb6f8fd11efcb59 | |
15 | SHA1 (patch-hw_display_omap__dss.c) = 6b13242f28e32346bc70548c216c578d98fd3420 | 15 | SHA1 (patch-hw_display_omap__dss.c) = 6b13242f28e32346bc70548c216c578d98fd3420 | |
16 | SHA1 (patch-hw_i386_acpi-build.c) = 7d23d09f71917cedca4226fd22baa45bcb0f7d33 | 16 | SHA1 (patch-hw_i386_acpi-build.c) = 7d23d09f71917cedca4226fd22baa45bcb0f7d33 | |
17 | SHA1 (patch-hw_mips_meson.build) = d9a07a81fe6d3c9e2bd45f41fe876cd927a40ced | 17 | SHA1 (patch-hw_mips_meson.build) = d9a07a81fe6d3c9e2bd45f41fe876cd927a40ced | |
18 | SHA1 (patch-hw_net_etraxfs__eth.c) = e5dd1661d60dbcd27b332403e0843500ba9544bc | 18 | SHA1 (patch-hw_net_etraxfs__eth.c) = e5dd1661d60dbcd27b332403e0843500ba9544bc | |
19 | SHA1 (patch-hw_net_xilinx__axienet.c) = ebcd2676d64ce6f31e4a8c976d4fdf530ad5e8b7 | 19 | SHA1 (patch-hw_net_xilinx__axienet.c) = ebcd2676d64ce6f31e4a8c976d4fdf530ad5e8b7 | |
20 | SHA1 (patch-hw_rtc_mc146818rtc.c) = cc7a3b28010966b65b7a16db756226ac2669f310 | 20 | SHA1 (patch-hw_rtc_mc146818rtc.c) = cc7a3b28010966b65b7a16db756226ac2669f310 | |
21 | SHA1 (patch-hw_scsi_scsi-disk.c) = fdbf2f962a6dcb1a115a7f8a5b8790ff9295fb33 | 21 | SHA1 (patch-hw_scsi_scsi-disk.c) = fdbf2f962a6dcb1a115a7f8a5b8790ff9295fb33 | |
22 | SHA1 (patch-hw_usb_dev-mtp.c) = 94ddf53a41cc75810cfece1b8aef1831fab4ce43 | 22 | SHA1 (patch-hw_usb_dev-mtp.c) = 94ddf53a41cc75810cfece1b8aef1831fab4ce43 | |
23 | SHA1 (patch-include_sysemu_nvmm.h) = 2cf9ea36c77570136b0678fe3b1c126ca7fa04cd | 23 | SHA1 (patch-include_sysemu_nvmm.h) = 2cf9ea36c77570136b0678fe3b1c126ca7fa04cd | |
24 | SHA1 (patch-meson.build) = 086400b3eebd0d5ce91af7779fa4f2a56d953542 | 24 | SHA1 (patch-meson.build) = 35f4d563e99dcc014a011bb4c7cddefac852d4cf | |
25 | SHA1 (patch-net_tap-solaris.c) = cc953c9a624dd55ace4e130d0b31bbfb956c17d5 | 25 | SHA1 (patch-net_tap-solaris.c) = cc953c9a624dd55ace4e130d0b31bbfb956c17d5 | |
26 | SHA1 (patch-roms_u-boot-sam460ex_Makefile) = 3a1bbf19b1422c10ebdd819eb0b711fafc78e2f2 | 26 | SHA1 (patch-roms_u-boot-sam460ex_Makefile) = 3a1bbf19b1422c10ebdd819eb0b711fafc78e2f2 | |
27 | SHA1 (patch-target_i386_nvmm_nvmm-all.c) = 8f4b51a6460090d7826af1ae02840a208767345b | |||
27 | SHA1 (patch-target_sparc_translate.c) = 7ec2add2fd808facb48b9a66ccc345599251bf76 | 28 | SHA1 (patch-target_sparc_translate.c) = 7ec2add2fd808facb48b9a66ccc345599251bf76 |
@@ -1,36 +1,38 @@ | @@ -1,36 +1,38 @@ | |||
1 | $NetBSD: patch-meson.build,v 1.8 2021/08/27 03:32:37 ryoon Exp $ | 1 | $NetBSD: patch-meson.build,v 1.9 2021/09/05 20:58:16 nia Exp $ | |
2 | 2 | |||
3 | * Add NetBSD support. | 3 | * Add NetBSD support. | |
4 | * Detect iconv in libc properly for pkgsrc (pkgsrc removes -liconv) | 4 | * Detect iconv in libc properly for pkgsrc (pkgsrc removes -liconv) | |
5 | to fix qemu-system-aarch64 link. | 5 | to fix qemu-system-aarch64 link. | |
6 | * Detect curses (non-ncurses{,w} too) | 6 | * Detect curses (non-ncurses{,w} too) | |
7 | 7 | |||
8 | --- meson.build.orig 2021-08-04 16:29:08.000000000 +0000 | 8 | --- meson.build.orig 2021-08-24 17:35:41.000000000 +0000 | |
9 | +++ meson.build | 9 | +++ meson.build | |
10 | @@ -237,7 +237,7 @@ if not get_option('hax').disabled() | 10 | @@ -237,9 +237,7 @@ if not get_option('hax').disabled() | |
11 | endif | 11 | endif | |
12 | endif | 12 | endif | |
13 | if targetos == 'netbsd' | 13 | if targetos == 'netbsd' | |
14 | - if cc.has_header_symbol('nvmm.h', 'nvmm_cpu_stop', required: get_option('nvmm')) | 14 | - if cc.has_header_symbol('nvmm.h', 'nvmm_cpu_stop', required: get_option('nvmm')) | |
15 | + if cc.has_header_symbol('nvmm.h', 'nvmm_vcpu_stop', required: get_option('nvmm')) | 15 | - nvmm = cc.find_library('nvmm', required: get_option('nvmm')) | |
16 | nvmm = cc.find_library('nvmm', required: get_option('nvmm')) | 16 | - endif | |
17 | endif | 17 | + nvmm = cc.find_library('nvmm', required: get_option('nvmm')) | |
18 | if nvmm.found() | 18 | if nvmm.found() | |
19 | @@ -613,7 +613,7 @@ if have_system and not get_option('curse | 19 | accelerators += 'CONFIG_NVMM' | |
20 | endif | |||
21 | @@ -613,7 +611,7 @@ if have_system and not get_option('curse | |||
20 | has_curses_h = cc.has_header('curses.h', args: curses_compile_args) | 22 | has_curses_h = cc.has_header('curses.h', args: curses_compile_args) | |
21 | endif | 23 | endif | |
22 | if has_curses_h | 24 | if has_curses_h | |
23 | - curses_libname_list = (targetos == 'windows' ? ['pdcurses'] : ['ncursesw', 'cursesw']) | 25 | - curses_libname_list = (targetos == 'windows' ? ['pdcurses'] : ['ncursesw', 'cursesw']) | |
24 | + curses_libname_list = (targetos == 'windows' ? ['pdcurses'] : ['ncursesw', 'cursesw', 'curses']) | 26 | + curses_libname_list = (targetos == 'windows' ? ['pdcurses'] : ['ncursesw', 'cursesw', 'curses']) | |
25 | foreach curses_libname : curses_libname_list | 27 | foreach curses_libname : curses_libname_list | |
26 | libcurses = cc.find_library(curses_libname, | 28 | libcurses = cc.find_library(curses_libname, | |
27 | required: false, | 29 | required: false, | |
28 | @@ -631,7 +631,7 @@ if have_system and not get_option('curse | 30 | @@ -631,7 +629,7 @@ if have_system and not get_option('curse | |
29 | endif | 31 | endif | |
30 | endif | 32 | endif | |
31 | if not get_option('iconv').disabled() | 33 | if not get_option('iconv').disabled() | |
32 | - foreach link_args : [ ['-liconv'], [] ] | 34 | - foreach link_args : [ ['-liconv'], [] ] | |
33 | + foreach link_args : [ [], ['-liconv'] ] | 35 | + foreach link_args : [ [], ['-liconv'] ] | |
34 | # Programs will be linked with glib and this will bring in libiconv on FreeBSD. | 36 | # Programs will be linked with glib and this will bring in libiconv on FreeBSD. | |
35 | # We need to use libiconv if available because mixing libiconv's headers with | 37 | # We need to use libiconv if available because mixing libiconv's headers with | |
36 | # the system libc does not work. | 38 | # the system libc does not work. |
$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
}
}