accel/hvf/hvf-all.c | 52 +- accel/stubs/hvf-stub.c | 2 + hw/arm/virt.c | 38 +- hw/intc/arm_gicv3_common.c | 4 + hw/intc/arm_gicv3_hvf.c | 822 +++++++++++++++++++++++++++++ hw/intc/arm_gicv3_hvf_stub.c | 25 + hw/intc/meson.build | 2 + include/hw/intc/arm_gicv3_common.h | 4 + include/system/hvf.h | 8 + system/vl.c | 2 + target/arm/hvf/hvf.c | 465 +++++++++++++++- target/arm/hvf/hvf_sme_stubs.h | 172 ++++++ target/arm/hvf/sysreg.c.inc | 52 ++ target/arm/hvf_arm.h | 46 ++ target/arm/machine.c | 2 +- 15 files changed, 1668 insertions(+), 28 deletions(-) create mode 100644 hw/intc/arm_gicv3_hvf.c create mode 100644 hw/intc/arm_gicv3_hvf_stub.c create mode 100644 target/arm/hvf/hvf_sme_stubs.h
Link to branch: https://github.com/mediouni-m/qemu hvf-irqchip-and-nested
(tag for this submission: hvf-irqchip-and-nested-v15)
This series adds supports for nested virtualisation when using HVF on arm64 Macs.
Reviews would be very welcome :-) It's maybe a bit unlikely that this will make
it to QEMU 11.0 I might as well try.
The first two patches are from the SME enablement series and are present for the
series to be buildable on its own.
Patches pending review: 14, 16
It has two parts:
- Apple vGICv3 support and necessary infrastructure changes for it
- Nested virtualisation support. Note that the nested virtualisation implementation
shipping as of macOS 26.3 is nVHE only (but it _does_ use VNCR as shipped).
This series doesn't contain EL2 physical timer emulation, which is
needed if not leveraging the Apple vGIC. As such, nested virt requires kernel-irqchip=on.
Known issues:
- when nested virt is enabled, no UI response within EDK2
and a permanent wait. Workaround: -boot menu=on,splash-time=0.
Apple Feedback Assistant item: FB21649319
When the VM is running at EL2 at the very moment the virtual timer fires:
HV_EXIT_REASON_VTIMER_ACTIVATED doesn’t fire (when not using the provided vGIC)
- using a GICv2 doesn’t require having transition notifiers which Hypervisor.framework doesn’t have…)
and when using the provided vGIC, the interrupt never gets delivered back to the guest
Linux as a guest OS is fine with this… but the reference ArmVirtQemu edk2 build always uses the virtual timer even when running EFI at EL2, so it gets broken unless this patch is applied to edk2:
diff of ArmVirtPkg/ArmVirt.dsc.inc:
- ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerVirtCounterLib/ArmGenericTimerVirtCounterLib.inf
+ ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.inf^M
Changelog:
v1->v2:
Oops. I did a mistake when preparing my patches.
- Add hvf_arm_el2_enable(_) call to virt_set_virt
- Fix nested virt support check to add HVF
v2->v3:
- LORC_EL1 patch was merged separately, remove from this series.
- fix LPIs when kernel-irqchip disabled and using TCG
- remove spurious if case in vGIC supported version detection (inapplicable now)
- Add hvf_enabled() check in combination with hvf kernel-irqchip checks
- cleanly fail on attempt to use the platform vGIC together with ITS
v3->v4:
- GIC state save improvements, including saving the opaque Apple-specific state
- Saving HVF system register state when using the vGIC and/or EL2
v5:
- oops, fixed up save/restore to be functional
- misc changes otherwise
v6:
- Addressing review comments
v7:
- Address review comments, adapt around Qemu changes and bugfixes.
v8:
- Rebase, and misc fixes
v9:
- Misc fixes from WHPX review comments
- Split enablement commit for EL2 into its own separate commit
v10:
- A bit of changes across the board
- move HVF irqchip save/restore into irqchip code
- block nested virt support when kernel-irqchip=off with a GICv2 as
we don't implement an emulated physical timer yet.
v11:
- fixups for the save/restore Apple GIC state patch
- block the same registers as the revert in 28b0ed32b32c7e5094cf2f1ec9c0645c65fad2aa
for "hvf: sync registers used at EL2"
- drop patch that warns instead of aborts on mismatch
v12:
- Have the SME2 series at the start of this.
- Adaptation for the SME2 series.
v13:
- include "fix SME capabilities reporting" patch instead of it being standalone
- include "remove hvf_arm.h include" patch at the beginning of the series
v14:
- Turns out that the HVF SME2 patches broke the build for pretty much anything
non-macOS, and didn't address that properly in v13
- Addressed some checkpatch nits
v15:
- Pick new revision of SME2 patches
- separate disable nested virt when SME on patch
Manos Pitsidianakis (2):
hvf/arm: handle FEAT_SME2 migration
hvf/arm: expose FEAT_SME2 to guest if available
Mohamed Mediouni (15):
hw/arm: virt: remove hvf_arm.h include
hvf: hvf-all: stop including hvf_arm.h
hw/intc: Add hvf vGIC interrupt controller support
hw/intc: arm_gicv3_hvf: save/restore Apple GIC state
accel, hw/arm, include/system/hvf: infrastructure changes for HVF vGIC
target/arm: hvf: instantiate GIC early
hw/arm, target/arm: nested virtualisation on HVF
hvf: only call hvf_sync_vtimer() when running without the platform
vGIC
hvf: gate ARM_FEATURE_PMU register emulation behind not being at EL2
hvf: arm: allow exposing minimal PMU when running with nested virt on
target/arm: hvf: add asserts for code paths not leveraged when using
the vGIC
hvf: sync registers used at EL2
target/arm: hvf: pass through CNTHCTL_EL2 and MDCCINT_EL1
hvf: arm: disable SME when nested virt is active
hvf: enable nested virtualisation support
accel/hvf/hvf-all.c | 52 +-
accel/stubs/hvf-stub.c | 2 +
hw/arm/virt.c | 38 +-
hw/intc/arm_gicv3_common.c | 4 +
hw/intc/arm_gicv3_hvf.c | 822 +++++++++++++++++++++++++++++
hw/intc/arm_gicv3_hvf_stub.c | 25 +
hw/intc/meson.build | 2 +
include/hw/intc/arm_gicv3_common.h | 4 +
include/system/hvf.h | 8 +
system/vl.c | 2 +
target/arm/hvf/hvf.c | 465 +++++++++++++++-
target/arm/hvf/hvf_sme_stubs.h | 172 ++++++
target/arm/hvf/sysreg.c.inc | 52 ++
target/arm/hvf_arm.h | 46 ++
target/arm/machine.c | 2 +-
15 files changed, 1668 insertions(+), 28 deletions(-)
create mode 100644 hw/intc/arm_gicv3_hvf.c
create mode 100644 hw/intc/arm_gicv3_hvf_stub.c
create mode 100644 target/arm/hvf/hvf_sme_stubs.h
--
2.50.1 (Apple Git-155)
On Fri, 6 Mar 2026 at 13:01, Mohamed Mediouni <mohamed@unpredictable.fr> wrote: > > Link to branch: https://github.com/mediouni-m/qemu hvf-irqchip-and-nested > (tag for this submission: hvf-irqchip-and-nested-v15) > > This series adds supports for nested virtualisation when using HVF on arm64 Macs. > > Reviews would be very welcome :-) It's maybe a bit unlikely that this will make > it to QEMU 11.0 I might as well try. > > The first two patches are from the SME enablement series and are present for the > series to be buildable on its own. Applied to target-arm.next, thanks. -- PMM
On Fri, 6 Mar 2026 at 14:58, Peter Maydell <peter.maydell@linaro.org> wrote: > > On Fri, 6 Mar 2026 at 13:01, Mohamed Mediouni <mohamed@unpredictable.fr> wrote: > > > > Link to branch: https://github.com/mediouni-m/qemu hvf-irqchip-and-nested > > (tag for this submission: hvf-irqchip-and-nested-v15) > > > > This series adds supports for nested virtualisation when using HVF on arm64 Macs. > > > > Reviews would be very welcome :-) It's maybe a bit unlikely that this will make > > it to QEMU 11.0 I might as well try. > > > > The first two patches are from the SME enablement series and are present for the > > series to be buildable on its own. > > > > Applied to target-arm.next, thanks. I'm afraid this failed to build in our gitlab CI job for macos: https://gitlab.com/qemu-project/qemu/-/jobs/13388426185 In file included from ../target/arm/hvf/hvf.c:489: ../target/arm/hvf/sysreg.c.inc:174:21: error: 'HV_SYS_REG_CNTHCTL_EL2' is only available on macOS 15.0 or newer [-Werror,-Wunguarded-availability-new] 174 | DEF_SYSREG_VGIC_EL2(HV_SYS_REG_CNTHCTL_EL2, 3, 4, 14, 1, 0) | ^ /Applications/Xcode_16.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Hypervisor.framework/Headers/hv_vcpu_types.h:312:5: note: 'HV_SYS_REG_CNTHCTL_EL2' has been marked as being introduced in macOS 15.0 here, but the deployment target is macOS 14.0.0 312 | HV_SYS_REG_CNTHCTL_EL2 API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, tvos) = 0xe708, | ^ and similarly for other registers. I'm going to drop the last 4 patches from the series, which I hope will fix the CI problems. -- PMM
> On 6. Mar 2026, at 16:44, Peter Maydell <peter.maydell@linaro.org> wrote: > > On Fri, 6 Mar 2026 at 14:58, Peter Maydell <peter.maydell@linaro.org <mailto:peter.maydell@linaro.org>> wrote: >> >> On Fri, 6 Mar 2026 at 13:01, Mohamed Mediouni <mohamed@unpredictable.fr> wrote: >>> >>> Link to branch: https://github.com/mediouni-m/qemu hvf-irqchip-and-nested >>> (tag for this submission: hvf-irqchip-and-nested-v15) >>> >>> This series adds supports for nested virtualisation when using HVF on arm64 Macs. >>> >>> Reviews would be very welcome :-) It's maybe a bit unlikely that this will make >>> it to QEMU 11.0 I might as well try. >>> >>> The first two patches are from the SME enablement series and are present for the >>> series to be buildable on its own. >> >> >> >> Applied to target-arm.next, thanks. > > I'm afraid this failed to build in our gitlab CI job for macos: > > https://gitlab.com/qemu-project/qemu/-/jobs/13388426185 > > In file included from ../target/arm/hvf/hvf.c:489: > ../target/arm/hvf/sysreg.c.inc:174:21: error: 'HV_SYS_REG_CNTHCTL_EL2' > is only available on macOS 15.0 or newer > [-Werror,-Wunguarded-availability-new] > 174 | DEF_SYSREG_VGIC_EL2(HV_SYS_REG_CNTHCTL_EL2, 3, 4, 14, 1, 0) > | ^ > /Applications/Xcode_16.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Hypervisor.framework/Headers/hv_vcpu_types.h:312:5: > note: 'HV_SYS_REG_CNTHCTL_EL2' has been marked as being introduced in > macOS 15.0 here, but the deployment target is macOS 14.0.0 > 312 | HV_SYS_REG_CNTHCTL_EL2 API_AVAILABLE(macos(15.0)) > API_UNAVAILABLE(ios, tvos) = 0xe708, > | ^ > > and similarly for other registers. > > I'm going to drop the last 4 patches from the series, which I hope will > fix the CI problems. > > — PMM Hello, Will submit a new rev of the last 4 patches with a workaround for this then… (Ugh @ compiler pragmas but there aren’t better choices unfortunately)
> On 6. Mar 2026, at 16:53, Mohamed Mediouni <mohamed@unpredictable.fr> wrote:
>
>
>
>> On 6. Mar 2026, at 16:44, Peter Maydell <peter.maydell@linaro.org> wrote:
>>
>> On Fri, 6 Mar 2026 at 14:58, Peter Maydell <peter.maydell@linaro.org <mailto:peter.maydell@linaro.org>> wrote:
>>>
>>> On Fri, 6 Mar 2026 at 13:01, Mohamed Mediouni <mohamed@unpredictable.fr> wrote:
>>>>
>>>> Link to branch: https://github.com/mediouni-m/qemu hvf-irqchip-and-nested
>>>> (tag for this submission: hvf-irqchip-and-nested-v15)
>>>>
>>>> This series adds supports for nested virtualisation when using HVF on arm64 Macs.
>>>>
>>>> Reviews would be very welcome :-) It's maybe a bit unlikely that this will make
>>>> it to QEMU 11.0 I might as well try.
>>>>
>>>> The first two patches are from the SME enablement series and are present for the
>>>> series to be buildable on its own.
>>>
>>>
>>>
>>> Applied to target-arm.next, thanks.
>>
>> I'm afraid this failed to build in our gitlab CI job for macos:
>>
>> https://gitlab.com/qemu-project/qemu/-/jobs/13388426185
>>
>> In file included from ../target/arm/hvf/hvf.c:489:
>> ../target/arm/hvf/sysreg.c.inc:174:21: error: 'HV_SYS_REG_CNTHCTL_EL2'
>> is only available on macOS 15.0 or newer
>> [-Werror,-Wunguarded-availability-new]
>> 174 | DEF_SYSREG_VGIC_EL2(HV_SYS_REG_CNTHCTL_EL2, 3, 4, 14, 1, 0)
>> | ^
>> /Applications/Xcode_16.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Hypervisor.framework/Headers/hv_vcpu_types.h:312:5:
>> note: 'HV_SYS_REG_CNTHCTL_EL2' has been marked as being introduced in
>> macOS 15.0 here, but the deployment target is macOS 14.0.0
>> 312 | HV_SYS_REG_CNTHCTL_EL2 API_AVAILABLE(macos(15.0))
>> API_UNAVAILABLE(ios, tvos) = 0xe708,
>> | ^
>>
>> and similarly for other registers.
>>
>> I'm going to drop the last 4 patches from the series, which I hope will
>> fix the CI problems.
>>
>> — PMM
> Hello,
>
> Will submit a new rev of the last 4 patches with a workaround for this then…
>
> (Ugh @ compiler pragmas but there aren’t better choices unfortunately)
>
For reference, the workaround:
diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c
index 61ba5acce4..11ff74e4c7 100644
--- a/target/arm/hvf/hvf.c
+++ b/target/arm/hvf/hvf.c
@@ -471,8 +471,14 @@ static const struct hvf_reg_match hvf_sme2_preg_match[] = {
*
* SME2 registers are guarded by a runtime availability attribute instead of a
* compile-time def, so verify those at runtime in hvf_arch_init_vcpu() below.
+ *
+ * Nested virt registers are handled via a runtime check, so override the guarded
+ * availability check done by Clang.
*/
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunguarded-availability"
+
#define DEF_SYSREG(HVF_ID, ...) \
QEMU_BUILD_BUG_ON(HVF_ID != KVMID_TO_HVF(KVMID_AA64_SYS_REG64(__VA_ARGS__)));
#define DEF_SYSREG_15_02(...)
@@ -494,6 +500,8 @@ static const struct hvf_reg_match hvf_sme2_preg_match[] = {
#undef DEF_SYSREG_VGIC
#undef DEF_SYSREG_VGIC_EL2
+#pragma clang diagnostic pop
+
#define DEF_SYSREG(HVF_ID, op0, op1, crn, crm, op2) {HVF_ID},
#define DEF_SYSREG_15_02(...)
#define DEF_SYSREG_EL2(HVF_ID, op0, op1, crn, crm, op2) {HVF_ID, .el2 = true},
On Fri, 6 Mar 2026 at 15:53, Mohamed Mediouni <mohamed@unpredictable.fr> wrote: > > > > On 6. Mar 2026, at 16:44, Peter Maydell <peter.maydell@linaro.org> wrote: > > On Fri, 6 Mar 2026 at 14:58, Peter Maydell <peter.maydell@linaro.org> wrote: > > > On Fri, 6 Mar 2026 at 13:01, Mohamed Mediouni <mohamed@unpredictable.fr> wrote: > > > Link to branch: https://github.com/mediouni-m/qemu hvf-irqchip-and-nested > (tag for this submission: hvf-irqchip-and-nested-v15) > > This series adds supports for nested virtualisation when using HVF on arm64 Macs. > > Reviews would be very welcome :-) It's maybe a bit unlikely that this will make > it to QEMU 11.0 I might as well try. > > The first two patches are from the SME enablement series and are present for the > series to be buildable on its own. > > > > > Applied to target-arm.next, thanks. > > > I'm afraid this failed to build in our gitlab CI job for macos: > > https://gitlab.com/qemu-project/qemu/-/jobs/13388426185 > > In file included from ../target/arm/hvf/hvf.c:489: > ../target/arm/hvf/sysreg.c.inc:174:21: error: 'HV_SYS_REG_CNTHCTL_EL2' > is only available on macOS 15.0 or newer > [-Werror,-Wunguarded-availability-new] > 174 | DEF_SYSREG_VGIC_EL2(HV_SYS_REG_CNTHCTL_EL2, 3, 4, 14, 1, 0) > | ^ > /Applications/Xcode_16.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Hypervisor.framework/Headers/hv_vcpu_types.h:312:5: > note: 'HV_SYS_REG_CNTHCTL_EL2' has been marked as being introduced in > macOS 15.0 here, but the deployment target is macOS 14.0.0 > 312 | HV_SYS_REG_CNTHCTL_EL2 API_AVAILABLE(macos(15.0)) > API_UNAVAILABLE(ios, tvos) = 0xe708, > | ^ > > and similarly for other registers. > > I'm going to drop the last 4 patches from the series, which I hope will > fix the CI problems. > > — PMM > > Hello, > > Will submit a new rev of the last 4 patches with a workaround for this then… > > (Ugh @ compiler pragmas but there aren’t better choices unfortunately) Unfortunately the problems aren't in just the nested-virt part: https://gitlab.com/qemu-project/qemu/-/jobs/13389185563 still complains, including about hv_gic_config_create(). I'm going to drop everything except the first 2 patches. thanks -- PMM
> On 6. Mar 2026, at 16:56, Peter Maydell <peter.maydell@linaro.org> wrote: > > On Fri, 6 Mar 2026 at 15:53, Mohamed Mediouni <mohamed@unpredictable.fr> wrote: >> >> >> >> On 6. Mar 2026, at 16:44, Peter Maydell <peter.maydell@linaro.org> wrote: >> >> On Fri, 6 Mar 2026 at 14:58, Peter Maydell <peter.maydell@linaro.org> wrote: >> >> >> On Fri, 6 Mar 2026 at 13:01, Mohamed Mediouni <mohamed@unpredictable.fr> wrote: >> >> >> Link to branch: https://github.com/mediouni-m/qemu hvf-irqchip-and-nested >> (tag for this submission: hvf-irqchip-and-nested-v15) >> >> This series adds supports for nested virtualisation when using HVF on arm64 Macs. >> >> Reviews would be very welcome :-) It's maybe a bit unlikely that this will make >> it to QEMU 11.0 I might as well try. >> >> The first two patches are from the SME enablement series and are present for the >> series to be buildable on its own. >> >> >> >> >> Applied to target-arm.next, thanks. >> >> >> I'm afraid this failed to build in our gitlab CI job for macos: >> >> https://gitlab.com/qemu-project/qemu/-/jobs/13388426185 >> >> In file included from ../target/arm/hvf/hvf.c:489: >> ../target/arm/hvf/sysreg.c.inc:174:21: error: 'HV_SYS_REG_CNTHCTL_EL2' >> is only available on macOS 15.0 or newer >> [-Werror,-Wunguarded-availability-new] >> 174 | DEF_SYSREG_VGIC_EL2(HV_SYS_REG_CNTHCTL_EL2, 3, 4, 14, 1, 0) >> | ^ >> /Applications/Xcode_16.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Hypervisor.framework/Headers/hv_vcpu_types.h:312:5: >> note: 'HV_SYS_REG_CNTHCTL_EL2' has been marked as being introduced in >> macOS 15.0 here, but the deployment target is macOS 14.0.0 >> 312 | HV_SYS_REG_CNTHCTL_EL2 API_AVAILABLE(macos(15.0)) >> API_UNAVAILABLE(ios, tvos) = 0xe708, >> | ^ >> >> and similarly for other registers. >> >> I'm going to drop the last 4 patches from the series, which I hope will >> fix the CI problems. >> >> — PMM >> >> Hello, >> >> Will submit a new rev of the last 4 patches with a workaround for this then… >> >> (Ugh @ compiler pragmas but there aren’t better choices unfortunately) > > Unfortunately the problems aren't in just the nested-virt part: > > https://gitlab.com/qemu-project/qemu/-/jobs/13389185563 > > still complains, including about hv_gic_config_create(). > > I'm going to drop everything except the first 2 patches. > > thanks Ok, will try to see if I can repro the CI config. My apologies. (It all builds locally :( ) > -- PMM >
> On 6. Mar 2026, at 16:58, Mohamed Mediouni <mohamed@unpredictable.fr> wrote:
>
>
>
>> On 6. Mar 2026, at 16:56, Peter Maydell <peter.maydell@linaro.org> wrote:
>>
>> On Fri, 6 Mar 2026 at 15:53, Mohamed Mediouni <mohamed@unpredictable.fr> wrote:
>>>
>>>
>>>
>>> On 6. Mar 2026, at 16:44, Peter Maydell <peter.maydell@linaro.org> wrote:
>>>
>>> On Fri, 6 Mar 2026 at 14:58, Peter Maydell <peter.maydell@linaro.org> wrote:
>>>
>>>
>>> On Fri, 6 Mar 2026 at 13:01, Mohamed Mediouni <mohamed@unpredictable.fr> wrote:
>>>
>>>
>>> Link to branch: https://github.com/mediouni-m/qemu hvf-irqchip-and-nested
>>> (tag for this submission: hvf-irqchip-and-nested-v15)
>>>
>>> This series adds supports for nested virtualisation when using HVF on arm64 Macs.
>>>
>>> Reviews would be very welcome :-) It's maybe a bit unlikely that this will make
>>> it to QEMU 11.0 I might as well try.
>>>
>>> The first two patches are from the SME enablement series and are present for the
>>> series to be buildable on its own.
>>>
>>>
>>>
>>>
>>> Applied to target-arm.next, thanks.
>>>
>>>
>>> I'm afraid this failed to build in our gitlab CI job for macos:
>>>
>>> https://gitlab.com/qemu-project/qemu/-/jobs/13388426185
>>>
>>> In file included from ../target/arm/hvf/hvf.c:489:
>>> ../target/arm/hvf/sysreg.c.inc:174:21: error: 'HV_SYS_REG_CNTHCTL_EL2'
>>> is only available on macOS 15.0 or newer
>>> [-Werror,-Wunguarded-availability-new]
>>> 174 | DEF_SYSREG_VGIC_EL2(HV_SYS_REG_CNTHCTL_EL2, 3, 4, 14, 1, 0)
>>> | ^
>>> /Applications/Xcode_16.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Hypervisor.framework/Headers/hv_vcpu_types.h:312:5:
>>> note: 'HV_SYS_REG_CNTHCTL_EL2' has been marked as being introduced in
>>> macOS 15.0 here, but the deployment target is macOS 14.0.0
>>> 312 | HV_SYS_REG_CNTHCTL_EL2 API_AVAILABLE(macos(15.0))
>>> API_UNAVAILABLE(ios, tvos) = 0xe708,
>>> | ^
>>>
>>> and similarly for other registers.
>>>
>>> I'm going to drop the last 4 patches from the series, which I hope will
>>> fix the CI problems.
>>>
>>> — PMM
>>>
>>> Hello,
>>>
>>> Will submit a new rev of the last 4 patches with a workaround for this then…
>>>
>>> (Ugh @ compiler pragmas but there aren’t better choices unfortunately)
>>
>> Unfortunately the problems aren't in just the nested-virt part:
>>
>> https://gitlab.com/qemu-project/qemu/-/jobs/13389185563
>>
>> still complains, including about hv_gic_config_create().
>>
>> I'm going to drop everything except the first 2 patches.
>>
>> thanks
>
> Ok, will try to see if I can repro the CI config. My apologies.
>
> (It all builds locally :( )
Hello,
For future reference what it takes to reproduce this locally is:
export MACOSX_DEPLOYMENT_TARGET=14.0
That showed a bunch of spurious warnings though:
/Users/sunrise/workspaces/qemu/include/qemu/cutils.h:144:12: warning: 'strchrnul' is only available on macOS 15.4 or newer [-Wunguarded-availability-new]
144 | return strchrnul(s, c);
| ^~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_string.h:198:9: note: 'strchrnul' has been marked as being introduced in macOS 15.4 here, but the deployment target is macOS 14.0.0
198 | strchrnul(const char *__s, int __c);
| ^
/Users/sunrise/workspaces/qemu/include/qemu/cutils.h:144:12: note: enclose 'strchrnul' in a __builtin_available check to silence this warning
144 | return strchrnul(s, c);
Sent over a new rev with guarding squashed in as needed (for the vGIC code, availability skipped because it’s… whether the GIC is available or not is checked in target/arm/hvf/hvf.c, and for target/arm/hvf/hvf.c, checking across the board except for EL2/vGIC register availability which are handled via a separate mechanism)
Sorry for this :/ should have anticipated it better
>> -- PMM
>>
>
>
© 2016 - 2026 Red Hat, Inc.