Download raw body.
UPDATE: QEMU 9.0.1
On Sun, Jun 23, 2024 at 06:57:35AM -0400, Brad Smith wrote:
> On Sat, Jun 22, 2024 at 05:23:40AM -0400, Brad Smith wrote:
> > On Sun, Jun 16, 2024 at 07:38:59AM -0400, Brad Smith wrote:
> > > Here is an update to QEMU 9.0.1.
> > >
> > >
> > > https://marc.info/?l=qemu-devel&m=171808086221928&w=2
> >
> >
> > An updated diff rolling in a diff that should fix building on
> > powerpc/powerpc64 with an issue that popped up with 8.1 and
> > a hack to resolve an issue naddy@ ran into where the tests
> > will pull in gtk-vnc if it happens to exis, but then dpb
> > garbage collected it.
>
> third rev,
> I sent out the wrong diff and the meson buts weren't what I intended. I'm
> going to look at that separately.
>
> I also added cpuinfo bits for arm64.
and a fourth rev now that everything has been pushed upstream.
Index: Makefile
===================================================================
RCS file: /cvs/ports/emulators/qemu/Makefile,v
retrieving revision 1.240
diff -u -p -u -p -r1.240 Makefile
--- Makefile 28 May 2024 13:57:37 -0000 1.240
+++ Makefile 7 Jul 2024 04:53:10 -0000
@@ -6,7 +6,7 @@ USE_NOBTCFI= Yes
COMMENT-main= multi system emulator
COMMENT-ga= QEMU guest agent
-VERSION= 9.0.0
+VERSION= 9.0.1
DISTNAME= qemu-${VERSION}
CATEGORIES= emulators
SITES= https://download.qemu.org/
Index: distinfo
===================================================================
RCS file: /cvs/ports/emulators/qemu/distinfo,v
retrieving revision 1.73
diff -u -p -u -p -r1.73 distinfo
--- distinfo 28 May 2024 13:57:37 -0000 1.73
+++ distinfo 7 Jul 2024 04:53:10 -0000
@@ -1,2 +1,2 @@
-SHA256 (qemu-9.0.0.tar.xz) = MnCKxmww2MiSYz6paMdxwcdtWX1w3erSGg0izPOG2mk=
-SIZE (qemu-9.0.0.tar.xz) = 129789856
+SHA256 (qemu-9.0.1.tar.xz) = 0PTbD70VHAzxb4SusqUA9ulQCXMlRvRNr6uNIEm7uAU=
+SIZE (qemu-9.0.1.tar.xz) = 132368412
Index: patches/patch-tcg_riscv_tcg-target_c_inc
===================================================================
RCS file: /cvs/ports/emulators/qemu/patches/patch-tcg_riscv_tcg-target_c_inc,v
retrieving revision 1.2
diff -u -p -u -p -r1.2 patch-tcg_riscv_tcg-target_c_inc
--- patches/patch-tcg_riscv_tcg-target_c_inc 28 May 2024 13:57:37 -0000 1.2
+++ patches/patch-tcg_riscv_tcg-target_c_inc 7 Jul 2024 04:53:10 -0000
@@ -1,12 +1,21 @@
+util/cpuinfo-riscv: Support OpenBSD signal frame
+adc028428a6da5ea8d6a688085966a33be4c97c7
+
Index: tcg/riscv/tcg-target.c.inc
--- tcg/riscv/tcg-target.c.inc.orig
+++ tcg/riscv/tcg-target.c.inc
-@@ -2116,7 +2116,7 @@ static void sigill_handler(int signo, siginfo_t *si, v
+@@ -2116,7 +2116,14 @@ static void sigill_handler(int signo, siginfo_t *si, v
{
/* Skip the faulty instruction */
ucontext_t *uc = (ucontext_t *)data;
-- uc->uc_mcontext.__gregs[REG_PC] += 4;
++
++#ifdef __linux__
+ uc->uc_mcontext.__gregs[REG_PC] += 4;
++#elif defined(__OpenBSD__)
+ uc->sc_sepc += 4;
++#else
++# error Unsupported OS
++#endif
got_sigill = 1;
}
Index: patches/patch-util_cpuinfo-aarch64_c
===================================================================
RCS file: patches/patch-util_cpuinfo-aarch64_c
diff -N patches/patch-util_cpuinfo-aarch64_c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-util_cpuinfo-aarch64_c 7 Jul 2024 04:53:10 -0000
@@ -0,0 +1,56 @@
+util/cpuinfo-aarch64: Add OpenBSD support
+ab089908b42f22e7edfa0d40db963c136ab35419
+
+Index: util/cpuinfo-aarch64.c
+--- util/cpuinfo-aarch64.c.orig
++++ util/cpuinfo-aarch64.c
+@@ -20,6 +20,12 @@
+ #ifdef CONFIG_DARWIN
+ # include <sys/sysctl.h>
+ #endif
++#ifdef __OpenBSD__
++# include <machine/armreg.h>
++# include <machine/cpu.h>
++# include <sys/types.h>
++# include <sys/sysctl.h>
++#endif
+
+ unsigned cpuinfo;
+
+@@ -71,6 +77,36 @@ unsigned __attribute__((constructor)) cpuinfo_init(voi
+ info |= sysctl_for_bool("hw.optional.arm.FEAT_AES") * CPUINFO_AES;
+ info |= sysctl_for_bool("hw.optional.arm.FEAT_PMULL") * CPUINFO_PMULL;
+ info |= sysctl_for_bool("hw.optional.arm.FEAT_BTI") * CPUINFO_BTI;
++#endif
++#ifdef __OpenBSD__
++ int mib[2];
++ uint64_t isar0;
++ uint64_t pfr1;
++ size_t len;
++
++ mib[0] = CTL_MACHDEP;
++ mib[1] = CPU_ID_AA64ISAR0;
++ len = sizeof(isar0);
++ if (sysctl(mib, 2, &isar0, &len, NULL, 0) != -1) {
++ if (ID_AA64ISAR0_ATOMIC(isar0) >= ID_AA64ISAR0_ATOMIC_IMPL) {
++ info |= CPUINFO_LSE;
++ }
++ if (ID_AA64ISAR0_AES(isar0) >= ID_AA64ISAR0_AES_BASE) {
++ info |= CPUINFO_AES;
++ }
++ if (ID_AA64ISAR0_AES(isar0) >= ID_AA64ISAR0_AES_PMULL) {
++ info |= CPUINFO_PMULL;
++ }
++ }
++
++ mib[0] = CTL_MACHDEP;
++ mib[1] = CPU_ID_AA64PFR1;
++ len = sizeof(pfr1);
++ if (sysctl(mib, 2, &pfr1, &len, NULL, 0) != -1) {
++ if (ID_AA64PFR1_BT(pfr1) >= ID_AA64PFR1_BT_IMPL) {
++ info |= CPUINFO_BTI;
++ }
++ }
+ #endif
+
+ cpuinfo = info;
Index: patches/patch-util_cpuinfo-ppc_c
===================================================================
RCS file: patches/patch-util_cpuinfo-ppc_c
diff -N patches/patch-util_cpuinfo-ppc_c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-util_cpuinfo-ppc_c 7 Jul 2024 04:53:10 -0000
@@ -0,0 +1,54 @@
+util/cpuinfo-ppc: Fix building on OpenBSD
+272d3decc19aebe87955f4ec6d0c6cc8790471f1
+
+Index: util/cpuinfo-ppc.c
+--- util/cpuinfo-ppc.c.orig
++++ util/cpuinfo-ppc.c
+@@ -6,11 +6,13 @@
+ #include "qemu/osdep.h"
+ #include "host/cpuinfo.h"
+
+-#include <asm/cputable.h>
+-#ifdef CONFIG_GETAUXVAL
+-# include <sys/auxv.h>
+-#else
+-# include "elf.h"
++#ifdef CONFIG_LINUX
++# include <asm/cputable.h>
++# ifdef CONFIG_GETAUXVAL
++# include <sys/auxv.h>
++# else
++# include "elf.h"
++# endif
+ #endif
+
+ unsigned cpuinfo;
+@@ -19,16 +21,17 @@ unsigned cpuinfo;
+ unsigned __attribute__((constructor)) cpuinfo_init(void)
+ {
+ unsigned info = cpuinfo;
+- unsigned long hwcap, hwcap2;
+
+ if (info) {
+ return info;
+ }
+
+- hwcap = qemu_getauxval(AT_HWCAP);
+- hwcap2 = qemu_getauxval(AT_HWCAP2);
+ info = CPUINFO_ALWAYS;
+
++#ifdef CONFIG_LINUX
++ unsigned long hwcap = qemu_getauxval(AT_HWCAP);
++ unsigned long hwcap2 = qemu_getauxval(AT_HWCAP2);
++
+ /* Version numbers are monotonic, and so imply all lower versions. */
+ if (hwcap2 & PPC_FEATURE2_ARCH_3_1) {
+ info |= CPUINFO_V3_1 | CPUINFO_V3_0 | CPUINFO_V2_07 | CPUINFO_V2_06;
+@@ -58,6 +61,7 @@ unsigned __attribute__((constructor)) cpuinfo_init(voi
+ }
+ }
+ }
++#endif
+
+ cpuinfo = info;
+ return info;
UPDATE: QEMU 9.0.1