qemu-arm
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


From: Paolo Bonzini
Subject: Re: [PATCH 7/8] arm: Add Hypervisor.framework build target
Date: Fri, 27 Nov 2020 05:59:22 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0

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}





reply via email to

[Prev in Thread] Current Thread [Next in Thread]