Message ID | 20210120224444.71840-9-agraf@csgraf.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | hvf: Implement Apple Silicon Support | expand |
On Wed, 20 Jan 2021 at 22:44, Alexander Graf <agraf@csgraf.de> wrote: > > Now that we have all logic in place that we need to handle Hypervisor.framework > on Apple Silicon systems, let's add CONFIG_HVF for aarch64 as well so that we > can build it. > > Signed-off-by: Alexander Graf <agraf@csgraf.de> > Reviewed-by: Roman Bolshakov <r.bolshakov@yadro.com> > Tested-by: Roman Bolshakov <r.bolshakov@yadro.com> (x86 only) > > --- > > v1 -> v2: > > - Fix build on 32bit arm > > v3 -> v4: > > - Remove i386-softmmu target > --- > meson.build | 11 ++++++++++- > target/arm/hvf/meson.build | 3 +++ > target/arm/meson.build | 2 ++ > 3 files changed, 15 insertions(+), 1 deletion(-) > create mode 100644 target/arm/hvf/meson.build > > diff --git a/meson.build b/meson.build > index c667d64498..8302fcbd90 100644 > --- a/meson.build > +++ b/meson.build > @@ -74,16 +74,25 @@ else > endif > > accelerator_targets = { 'CONFIG_KVM': kvm_targets } > + > +if cpu in ['x86', 'x86_64'] We don't support 32-bit x86 hosts so I don't think you need the 'x86' here. > + hvf_targets = ['x86_64-softmmu'] > +elif cpu in ['aarch64'] > + hvf_targets = ['aarch64-softmmu'] > +else > + hvf_targets = [] > +endif > + > if cpu in ['x86', 'x86_64', 'arm', 'aarch64'] > # i368 emulator provides xenpv machine type for multiple architectures > accelerator_targets += { > 'CONFIG_XEN': ['i386-softmmu', 'x86_64-softmmu'], > + 'CONFIG_HVF': hvf_targets, This 'if' is specific to the weird Xen thing where for arm hosts we build the Xen code into a qemu-system-i386/qemu-system-x86_64, so it's the wrong place to add HVF stuff. I think what you want is to follow the same pattern as the KVM stuff, so just accelerator_targets += { 'CONFIG_HVF': hvf_targets } after the if-ladder where you're setting hvf_targets. thanks -- PMM
diff --git a/meson.build b/meson.build index c667d64498..8302fcbd90 100644 --- a/meson.build +++ b/meson.build @@ -74,16 +74,25 @@ else endif accelerator_targets = { 'CONFIG_KVM': kvm_targets } + +if cpu in ['x86', 'x86_64'] + hvf_targets = ['x86_64-softmmu'] +elif cpu in ['aarch64'] + hvf_targets = ['aarch64-softmmu'] +else + hvf_targets = [] +endif + if cpu in ['x86', 'x86_64', 'arm', 'aarch64'] # i368 emulator provides xenpv machine type for multiple architectures accelerator_targets += { 'CONFIG_XEN': ['i386-softmmu', 'x86_64-softmmu'], + 'CONFIG_HVF': hvf_targets, } endif if cpu in ['x86', 'x86_64'] accelerator_targets += { 'CONFIG_HAX': ['i386-softmmu', 'x86_64-softmmu'], - 'CONFIG_HVF': ['x86_64-softmmu'], 'CONFIG_WHPX': ['i386-softmmu', 'x86_64-softmmu'], } endif diff --git a/target/arm/hvf/meson.build b/target/arm/hvf/meson.build new file mode 100644 index 0000000000..855e6cce5a --- /dev/null +++ b/target/arm/hvf/meson.build @@ -0,0 +1,3 @@ +arm_softmmu_ss.add(when: [hvf, 'CONFIG_HVF'], if_true: files( + 'hvf.c', +)) diff --git a/target/arm/meson.build b/target/arm/meson.build index 15b936c101..2efd6e672a 100644 --- a/target/arm/meson.build +++ b/target/arm/meson.build @@ -54,5 +54,7 @@ arm_softmmu_ss.add(files( 'psci.c', )) +subdir('hvf') + target_arch += {'arm': arm_ss} target_softmmu_arch += {'arm': arm_softmmu_ss}