diff mbox series

[7/8] arm: Add Hypervisor.framework build target

Message ID 20201126215017.41156-8-agraf@csgraf.de
State New
Headers show
Series hvf: Implement Apple Silicon Support | expand

Commit Message

Alexander Graf Nov. 26, 2020, 9:50 p.m. UTC
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

Comments

Paolo Bonzini Nov. 27, 2020, 4:59 a.m. UTC | #1
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 mbox series

Patch

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}