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}
>