Message ID | 20201126215017.41156-8-agraf@csgraf.de |
---|---|
State | New |
Headers | show |
Series | hvf: Implement Apple Silicon Support | expand |
On 26/11/20 22:50, Alexander Graf 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> Between patch 1 and this one, this series is a nice showcase for the good, the bad and the ugly of Meson... :) > diff --git a/meson.build b/meson.build > index 2a7ff5560c..21565f5787 100644 > --- a/meson.build > +++ b/meson.build > @@ -74,16 +74,23 @@ else > endif > > accelerator_targets = { 'CONFIG_KVM': kvm_targets } > + > +if cpu in ['x86', 'x86_64'] > + hvf_targets = ['i386-softmmu', 'x86_64-softmmu'] > +elif cpu in ['aarch64'] > + hvf_targets = ['aarch64-softmmu'] > +endif > + > if cpu in ['x86', 'x86_64', 'arm', 'aarch64'] This would fail to compile on 32-bit ARM. Simpler to add an "hvf_targets = []" else branch above, and add "'CONFIG_HVF': hvf_targets" unconditionally. That is, copy even more of what it is doing for KVM. Paolo > # 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 f5de2a77b8..95bebae216 100644 > --- a/target/arm/meson.build > +++ b/target/arm/meson.build > @@ -56,5 +56,7 @@ arm_softmmu_ss.add(files( > 'psci.c', > )) > > +subdir('hvf') > + > target_arch += {'arm': arm_ss} > target_softmmu_arch += {'arm': arm_softmmu_ss} >
diff --git a/meson.build b/meson.build index 2a7ff5560c..21565f5787 100644 --- a/meson.build +++ b/meson.build @@ -74,16 +74,23 @@ else endif accelerator_targets = { 'CONFIG_KVM': kvm_targets } + +if cpu in ['x86', 'x86_64'] + hvf_targets = ['i386-softmmu', 'x86_64-softmmu'] +elif cpu in ['aarch64'] + hvf_targets = ['aarch64-softmmu'] +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 f5de2a77b8..95bebae216 100644 --- a/target/arm/meson.build +++ b/target/arm/meson.build @@ -56,5 +56,7 @@ arm_softmmu_ss.add(files( 'psci.c', )) +subdir('hvf') + target_arch += {'arm': arm_ss} target_softmmu_arch += {'arm': arm_softmmu_ss}
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> --- meson.build | 9 ++++++++- target/arm/hvf/meson.build | 3 +++ target/arm/meson.build | 2 ++ 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 target/arm/hvf/meson.build