Sun Sep 5 20:58:17 2021 UTC ()
qemu: Re-add NetBSD 9 NVMM support.


(nia)
diff -r1.284 -r1.285 pkgsrc/emulators/qemu/Makefile
diff -r1.183 -r1.184 pkgsrc/emulators/qemu/distinfo
diff -r1.8 -r1.9 pkgsrc/emulators/qemu/patches/patch-meson.build
diff -r0 -r1.4 pkgsrc/emulators/qemu/patches/patch-target_i386_nvmm_nvmm-all.c

cvs diff -r1.284 -r1.285 pkgsrc/emulators/qemu/Makefile (expand / switch to unified diff)

--- pkgsrc/emulators/qemu/Makefile 2021/08/29 01:53:06 1.284
+++ pkgsrc/emulators/qemu/Makefile 2021/09/05 20:58:16 1.285
@@ -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
3DISTNAME= qemu-6.1.0 3DISTNAME= qemu-6.1.0
4PKGNAME= ${DISTNAME:S/-rc/rc/} 4PKGNAME= ${DISTNAME:S/-rc/rc/}
 5PKGREVISION= 1
5CATEGORIES= emulators 6CATEGORIES= emulators
6MASTER_SITES= https://download.qemu.org/ 7MASTER_SITES= https://download.qemu.org/
7EXTRACT_SUFX= .tar.xz 8EXTRACT_SUFX= .tar.xz
8 9
9MAINTAINER= pkgsrc-users@NetBSD.org 10MAINTAINER= pkgsrc-users@NetBSD.org
10HOMEPAGE= http://www.qemu-project.org/ 11HOMEPAGE= http://www.qemu-project.org/
11COMMENT= CPU emulator using dynamic translation 12COMMENT= CPU emulator using dynamic translation
12LICENSE= gnu-gpl-v2 AND gnu-lgpl-v2.1 AND mit AND modified-bsd 13LICENSE= gnu-gpl-v2 AND gnu-lgpl-v2.1 AND mit AND modified-bsd
13 14
14TOOL_DEPENDS+= ninja-build-[0-9]*:../../devel/ninja-build 15TOOL_DEPENDS+= ninja-build-[0-9]*:../../devel/ninja-build
15 16
16USE_CURSES= resize_term wide 17USE_CURSES= resize_term wide
17USE_LANGUAGES+= c c++ 18USE_LANGUAGES+= c c++

cvs diff -r1.183 -r1.184 pkgsrc/emulators/qemu/distinfo (expand / switch to unified diff)

--- pkgsrc/emulators/qemu/distinfo 2021/08/27 03:32:37 1.183
+++ pkgsrc/emulators/qemu/distinfo 2021/09/05 20:58:16 1.184
@@ -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
3SHA1 (palcode-clipper-qemu-5.2.0nb8) = ddbf1dffb7c2b2157e0bbe9fb7db7e57105130b1 3SHA1 (palcode-clipper-qemu-5.2.0nb8) = ddbf1dffb7c2b2157e0bbe9fb7db7e57105130b1
4RMD160 (palcode-clipper-qemu-5.2.0nb8) = 3f9fe19a40f7ca72ecfe047d1449e55b63cba3ee 4RMD160 (palcode-clipper-qemu-5.2.0nb8) = 3f9fe19a40f7ca72ecfe047d1449e55b63cba3ee
5SHA512 (palcode-clipper-qemu-5.2.0nb8) = 33695d6001d86a19793a92d5e31775607c4dfc9ab9eea019ea6c4d543a2e11e8c07f83cca4934811a13ef829b528737ea37d9d2aaf66cba6f2746d44d2aa0b43 5SHA512 (palcode-clipper-qemu-5.2.0nb8) = 33695d6001d86a19793a92d5e31775607c4dfc9ab9eea019ea6c4d543a2e11e8c07f83cca4934811a13ef829b528737ea37d9d2aaf66cba6f2746d44d2aa0b43
6Size (palcode-clipper-qemu-5.2.0nb8) = 159808 bytes 6Size (palcode-clipper-qemu-5.2.0nb8) = 159808 bytes
7SHA1 (qemu-6.1.0.tar.xz) = aae5ef7761b5f2fc45f0076219f1249da86f94b5 7SHA1 (qemu-6.1.0.tar.xz) = aae5ef7761b5f2fc45f0076219f1249da86f94b5
8RMD160 (qemu-6.1.0.tar.xz) = 00f21e102c9ca70c154b770d0094fd48568bbdd5 8RMD160 (qemu-6.1.0.tar.xz) = 00f21e102c9ca70c154b770d0094fd48568bbdd5
9SHA512 (qemu-6.1.0.tar.xz) = 3378ae21c75b77ee6a759827f1fcf7b2a50a0fef07e3b0e89117108022a8d8655fa977e4d65596f4f24f7c735c6594d44b0c6f69732ea4465e88a7406b1d5d3c 9SHA512 (qemu-6.1.0.tar.xz) = 3378ae21c75b77ee6a759827f1fcf7b2a50a0fef07e3b0e89117108022a8d8655fa977e4d65596f4f24f7c735c6594d44b0c6f69732ea4465e88a7406b1d5d3c
10Size (qemu-6.1.0.tar.xz) = 111258808 bytes 10Size (qemu-6.1.0.tar.xz) = 111258808 bytes
11SHA1 (patch-backends_tpm_tpm__ioctl.h) = fbd6c877ad605f7120290efbb0ac653c69f351de 11SHA1 (patch-backends_tpm_tpm__ioctl.h) = fbd6c877ad605f7120290efbb0ac653c69f351de
12SHA1 (patch-hw-mips-Kconfig) = c7199ad26ac45116ab4d38252db4234ae93bdf9a 12SHA1 (patch-hw-mips-Kconfig) = c7199ad26ac45116ab4d38252db4234ae93bdf9a
13SHA1 (patch-hw-mips-mipssim.c) = 1f682b74b34398b3ff15f9e7f24a85f4b8bb4853 13SHA1 (patch-hw-mips-mipssim.c) = 1f682b74b34398b3ff15f9e7f24a85f4b8bb4853
14SHA1 (patch-hw_core_uboot__image.h) = 17eef02349343c5fcfb7a4069cb6f8fd11efcb59 14SHA1 (patch-hw_core_uboot__image.h) = 17eef02349343c5fcfb7a4069cb6f8fd11efcb59
15SHA1 (patch-hw_display_omap__dss.c) = 6b13242f28e32346bc70548c216c578d98fd3420 15SHA1 (patch-hw_display_omap__dss.c) = 6b13242f28e32346bc70548c216c578d98fd3420
16SHA1 (patch-hw_i386_acpi-build.c) = 7d23d09f71917cedca4226fd22baa45bcb0f7d33 16SHA1 (patch-hw_i386_acpi-build.c) = 7d23d09f71917cedca4226fd22baa45bcb0f7d33
17SHA1 (patch-hw_mips_meson.build) = d9a07a81fe6d3c9e2bd45f41fe876cd927a40ced 17SHA1 (patch-hw_mips_meson.build) = d9a07a81fe6d3c9e2bd45f41fe876cd927a40ced
18SHA1 (patch-hw_net_etraxfs__eth.c) = e5dd1661d60dbcd27b332403e0843500ba9544bc 18SHA1 (patch-hw_net_etraxfs__eth.c) = e5dd1661d60dbcd27b332403e0843500ba9544bc
19SHA1 (patch-hw_net_xilinx__axienet.c) = ebcd2676d64ce6f31e4a8c976d4fdf530ad5e8b7 19SHA1 (patch-hw_net_xilinx__axienet.c) = ebcd2676d64ce6f31e4a8c976d4fdf530ad5e8b7
20SHA1 (patch-hw_rtc_mc146818rtc.c) = cc7a3b28010966b65b7a16db756226ac2669f310 20SHA1 (patch-hw_rtc_mc146818rtc.c) = cc7a3b28010966b65b7a16db756226ac2669f310
21SHA1 (patch-hw_scsi_scsi-disk.c) = fdbf2f962a6dcb1a115a7f8a5b8790ff9295fb33 21SHA1 (patch-hw_scsi_scsi-disk.c) = fdbf2f962a6dcb1a115a7f8a5b8790ff9295fb33
22SHA1 (patch-hw_usb_dev-mtp.c) = 94ddf53a41cc75810cfece1b8aef1831fab4ce43 22SHA1 (patch-hw_usb_dev-mtp.c) = 94ddf53a41cc75810cfece1b8aef1831fab4ce43
23SHA1 (patch-include_sysemu_nvmm.h) = 2cf9ea36c77570136b0678fe3b1c126ca7fa04cd 23SHA1 (patch-include_sysemu_nvmm.h) = 2cf9ea36c77570136b0678fe3b1c126ca7fa04cd
24SHA1 (patch-meson.build) = 086400b3eebd0d5ce91af7779fa4f2a56d953542 24SHA1 (patch-meson.build) = 35f4d563e99dcc014a011bb4c7cddefac852d4cf
25SHA1 (patch-net_tap-solaris.c) = cc953c9a624dd55ace4e130d0b31bbfb956c17d5 25SHA1 (patch-net_tap-solaris.c) = cc953c9a624dd55ace4e130d0b31bbfb956c17d5
26SHA1 (patch-roms_u-boot-sam460ex_Makefile) = 3a1bbf19b1422c10ebdd819eb0b711fafc78e2f2 26SHA1 (patch-roms_u-boot-sam460ex_Makefile) = 3a1bbf19b1422c10ebdd819eb0b711fafc78e2f2
 27SHA1 (patch-target_i386_nvmm_nvmm-all.c) = 8f4b51a6460090d7826af1ae02840a208767345b
27SHA1 (patch-target_sparc_translate.c) = 7ec2add2fd808facb48b9a66ccc345599251bf76 28SHA1 (patch-target_sparc_translate.c) = 7ec2add2fd808facb48b9a66ccc345599251bf76

cvs diff -r1.8 -r1.9 pkgsrc/emulators/qemu/patches/patch-meson.build (expand / switch to unified diff)

--- pkgsrc/emulators/qemu/patches/patch-meson.build 2021/08/27 03:32:37 1.8
+++ pkgsrc/emulators/qemu/patches/patch-meson.build 2021/09/05 20:58:16 1.9
@@ -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.

File Added: pkgsrc/emulators/qemu/patches/Attic/patch-target_i386_nvmm_nvmm-all.c
$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
     }
 }