[PATCH 0/2] Xen: Fallout from minimum supported version bump
by Jim Fehlig
Patch 1 removes the use of LIBXL_HAVE_* that are present in Xen >= 4.9.
Patch 2 mentions the version bump in News.
Thanks danpb for a little prodding to take a closer look at potential
code reduction! After following through with the exersice, it proved
to be a bit more than I expected.
Jim Fehlig (2):
Xen: Remove unneeded LIBXL_HAVE_* ifdefs
News: Mention bump in minimum supported Xen version
NEWS.rst | 7 ++++++
src/libxl/libxl_capabilities.c | 14 ++---------
src/libxl/libxl_capabilities.h | 2 --
src/libxl/libxl_conf.c | 45 ----------------------------------
src/libxl/libxl_domain.c | 20 +--------------
src/libxl/libxl_driver.c | 29 +---------------------
src/libxl/xen_xl.c | 24 ++----------------
tests/domaincapsmock.c | 11 ---------
tests/libxlxml2domconfigtest.c | 6 -----
tests/xlconfigtest.c | 12 ---------
10 files changed, 13 insertions(+), 157 deletions(-)
--
2.31.1
3 years, 5 months
Add options to device xml to skip reattach of pci passthrough devices.
by Manish Mishra
Hi Everyone,
We want to add extra options to device xml to skip reattach of pci passthrough devices. Following is xml format for pci passthrough devices added to domain as of now.
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
<address domain='0x0000' bus='0x00' slot='0x1a' function='0x7'/>
</source>
</hostdev>
When we pass managed=’yes’ flag through xml, libvirt takes responsibility of detaching device on domain(guest VM) start and reattaching on domain shutdown. We observed some issues where guest VM shutdown may take long time, blocked for reattach operation on pci passthrough device. As domain lock is held during this time it also makes libvirt mostly inactive as it blocks even basic operations like (virsh list). Reattaching of device to host can block due to reasons like buggy driver or initialization of device itself can take long time in some cases.
We want to pass following extra options to resolve this:
1. skipReAttach (optional flag)
In some cases we do not need to reattach device to host as it may be reserved only for guests, with this flag we can skip reattach operation on host. We do not want to modify managed flag to avoid regression, so thinking of adding new optional flag.
1. reAttachDriverName (optional flag)
Name of driver to which we want to attach instead of default, to avoid reattaching to buggy driver. Currently libvirt asks host to auto selects driver for device.
Yes we can use managed=’no’ but in that case user has to take responsibility of detaching device before starting domain which we do not want. Please let us know your views on this.
Thanks
Manish Mishra
3 years, 5 months
[libvirt PATCH 0/4] remote: switch to modular daemons by default
by Daniel P. Berrangé
This series first improves driver probing when using modular daemons.
Currently when URI is NULL, we connect to virtproxyd and it looks
at which UNIX sockets exist and what binaries exist, to decide which
modular hypervisor daemon to connect to.
This means the common case results in all traffic going via virtproxyd.
Moving the logic out of virtproxyd into the remote client means we can
avoid using virtproxyd by default.
With this, we can now switch to the modular daemons by default. The
latter change primarily impacts how autostart works
When running as root we simply connect to whatever UNIX socket exists
and rely on systemd to autostart if needed. Whether the UNIX sockets
are for the modular daemon or libvirt doesn't matter - we'll look for
both. Defaults are dependent on the distros' systemd presets. I intend
to get Fedora / RHEL-9 presets changed to use the modular daemons.
When running as non-root, we again try to connect to whatever UNIX
socket exists, whethe a modular daemon or libvirtd. When no socket
exists though, we need to pick a daemon to start and that's where
the meson default setting toggle comes into effect, so we prefer
spawning modular daemons now and don't spawn libvirtd.
Daniel P. Berrangé (4):
remote: extract logic for probing for modular daemons
remote: add support for probing drivers with modular daemons
remote: remove probing logic from virtproxyd dispatcher
remote: switch to auto-spawn modular daemons by default
meson.build | 6 +-
meson_options.txt | 2 +-
src/libvirt_remote.syms | 5 +
src/remote/remote_daemon_dispatch.c | 130 +------------------
src/remote/remote_sockets.c | 192 ++++++++++++++++++++++++++--
src/remote/remote_sockets.h | 7 +
6 files changed, 202 insertions(+), 140 deletions(-)
--
2.31.1
3 years, 5 months
[PATCH] remote: fix prefix for libxl Xen driver
by Daniel P. Berrangé
The libxl driver supports xen:///system URLs and the daemon socket
uses 'virtxend' as the socket prefix.
Reported-by: Jim Fehlig <jfehlig(a)suse.com>
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
src/remote/remote_daemon_dispatch.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/remote/remote_daemon_dispatch.c b/src/remote/remote_daemon_dispatch.c
index 838f4a925f..dd797a81f7 100644
--- a/src/remote/remote_daemon_dispatch.c
+++ b/src/remote/remote_daemon_dispatch.c
@@ -2021,7 +2021,7 @@ remoteDispatchProbeURI(bool readonly,
* calls in daemonInitialize */
const char *drivers[] = {
# ifdef WITH_LIBXL
- "libxl",
+ "xen",
# endif
# ifdef WITH_QEMU
"qemu",
--
2.31.1
3 years, 5 months
[PATCH v2 0/4] Support for launchSecurity type s390-pv
by Boris Fiuczynski
This patch series introduces the launch security type s390-pv.
Specifying s390-pv as launch security type in an s390 domain prepares for
running the guest in protected virtualization secure mode, also known as
IBM Secure Execution.
diff to v1:
- Rebased to current master
- Added verification check for confidential-guest-support capability
*** BLURB HERE ***
Boris Fiuczynski (4):
conf: refactor launch security to allow more types
qemu: add s390-pv-guest capability
conf: add s390-pv as launch security type
docs: add s390-pv documentation
docs/formatdomain.rst | 7 +
docs/kbase/s390_protected_virt.rst | 55 +++++-
docs/schemas/domaincommon.rng | 13 +-
src/conf/domain_conf.c | 164 +++++++++++-------
src/conf/domain_conf.h | 14 +-
src/conf/virconftypes.h | 2 +
src/qemu/qemu_capabilities.c | 2 +
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_cgroup.c | 4 +-
src/qemu/qemu_command.c | 69 +++++++-
src/qemu/qemu_driver.c | 2 +-
src/qemu/qemu_firmware.c | 8 +-
src/qemu/qemu_namespace.c | 21 ++-
src/qemu/qemu_process.c | 36 +++-
src/qemu/qemu_validate.c | 31 +++-
src/security/security_dac.c | 4 +-
.../launch-security-s390-pv-ignore-policy.xml | 24 +++
.../launch-security-s390-pv.xml | 18 ++
.../launch-security-s390-pv-ignore-policy.xml | 1 +
tests/genericxml2xmltest.c | 2 +
.../qemucapabilitiesdata/caps_6.0.0.s390x.xml | 1 +
...ty-s390-pv-ignore-policy.s390x-latest.args | 35 ++++
.../launch-security-s390-pv-ignore-policy.xml | 33 ++++
.../launch-security-s390-pv.s390x-latest.args | 35 ++++
.../launch-security-s390-pv.xml | 30 ++++
...urity-sev-missing-policy.x86_64-2.12.0.err | 1 +
.../launch-security-sev-missing-policy.xml | 34 ++++
tests/qemuxml2argvtest.c | 4 +
28 files changed, 543 insertions(+), 108 deletions(-)
create mode 100644 tests/genericxml2xmlindata/launch-security-s390-pv-ignore-policy.xml
create mode 100644 tests/genericxml2xmlindata/launch-security-s390-pv.xml
create mode 120000 tests/genericxml2xmloutdata/launch-security-s390-pv-ignore-policy.xml
create mode 100644 tests/qemuxml2argvdata/launch-security-s390-pv-ignore-policy.s390x-latest.args
create mode 100644 tests/qemuxml2argvdata/launch-security-s390-pv-ignore-policy.xml
create mode 100644 tests/qemuxml2argvdata/launch-security-s390-pv.s390x-latest.args
create mode 100644 tests/qemuxml2argvdata/launch-security-s390-pv.xml
create mode 100644 tests/qemuxml2argvdata/launch-security-sev-missing-policy.x86_64-2.12.0.err
create mode 100644 tests/qemuxml2argvdata/launch-security-sev-missing-policy.xml
--
2.30.2
3 years, 5 months
[PATCH 0/4] storage_backend_iscsi_direct: Refactor string list use and cleanup
by Peter Krempa
Peter Krempa (4):
conf: storage: Introduce virStoragePoolSourceListFree
virStorageBackendISCSIDirectFindPoolSources: Use allocated
virStoragePoolSourceList
virISCSIDirectUpdateTargets: Rework to simplify cleanup and return
GStrv
virStorageBackendISCSIDirectFindPoolSources: Rework cleanup
src/conf/storage_conf.c | 16 ++++
src/conf/storage_conf.h | 5 ++
src/libvirt_private.syms | 1 +
src/storage/storage_backend_iscsi_direct.c | 87 +++++++++-------------
4 files changed, 56 insertions(+), 53 deletions(-)
--
2.31.1
3 years, 5 months
Plans for the next release
by Jiri Denemark
We are getting close to the next release of libvirt. To aim for the
release on Jul 01 I suggest entering the freeze on Friday Jun 25 and
tagging RC2 on Tuesday Jun 29.
I hope this works for everyone.
Jirka
3 years, 5 months
[PATCH] ch_domain: Add handler for virDomainDeviceDefPostParseCallback
by William Douglas
Instead of trying to match devices passed in based on the monitor
detecting the number of devices that were used in the domain
definition, use the devicesPostParseCallback to evaluate if
unsupported devices are used.
This allows the compiler to detect when new device types are added
that need to be checked.
Signed-off-by: William Douglas <william.douglas(a)intel.com>
---
src/ch/ch_domain.c | 121 +++++++++++++++++++++++++++++++++++++++++++
src/ch/ch_monitor.c | 122 --------------------------------------------
2 files changed, 121 insertions(+), 122 deletions(-)
diff --git a/src/ch/ch_domain.c b/src/ch/ch_domain.c
index f9a6f3f31d..02ca5ea06c 100644
--- a/src/ch/ch_domain.c
+++ b/src/ch/ch_domain.c
@@ -197,7 +197,128 @@ virCHDomainDefPostParse(virDomainDef *def,
return 0;
}
+static int
+virCHDomainDeviceDefPostParse(virDomainDeviceDef *dev,
+ const virDomainDef *def G_GNUC_UNUSED,
+ unsigned int parseFlags G_GNUC_UNUSED,
+ void *opaque G_GNUC_UNUSED,
+ void *parseOpaque G_GNUC_UNUSED)
+{
+ int ret = -1;
+
+ switch ((virDomainDeviceType)dev->type) {
+ case VIR_DOMAIN_DEVICE_DISK:
+ ret = 0;
+ break;
+ case VIR_DOMAIN_DEVICE_LEASE:
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Cloud-Hypervisor doesn't support lease"));
+ break;
+ case VIR_DOMAIN_DEVICE_FS:
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Cloud-Hypervisor doesn't support fs"));
+ break;
+ case VIR_DOMAIN_DEVICE_NET:
+ ret = 0;
+ break;
+ case VIR_DOMAIN_DEVICE_INPUT:
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Cloud-Hypervisor doesn't support input"));
+ break;
+ case VIR_DOMAIN_DEVICE_SOUND:
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Cloud-Hypervisor doesn't support sound"));
+ break;
+ case VIR_DOMAIN_DEVICE_VIDEO:
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Cloud-Hypervisor doesn't support video"));
+ break;
+ case VIR_DOMAIN_DEVICE_HOSTDEV:
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Cloud-Hypervisor doesn't support hostdev"));
+ break;
+ case VIR_DOMAIN_DEVICE_WATCHDOG:
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Cloud-Hypervisor doesn't support watchdog"));
+ break;
+ case VIR_DOMAIN_DEVICE_CONTROLLER:
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Cloud-Hypervisor doesn't support controller"));
+ break;
+ case VIR_DOMAIN_DEVICE_GRAPHICS:
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Cloud-Hypervisor doesn't support graphics"));
+ break;
+ case VIR_DOMAIN_DEVICE_HUB:
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Cloud-Hypervisor doesn't support hub"));
+ break;
+ case VIR_DOMAIN_DEVICE_REDIRDEV:
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Cloud-Hypervisor doesn't support redirdev"));
+ break;
+ case VIR_DOMAIN_DEVICE_SMARTCARD:
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Cloud-Hypervisor doesn't support smartcard"));
+ break;
+ case VIR_DOMAIN_DEVICE_CHR:
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Cloud-Hypervisor doesn't support chr"));
+ break;
+ case VIR_DOMAIN_DEVICE_MEMBALLOON:
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Cloud-Hypervisor doesn't support memballoon"));
+ break;
+ case VIR_DOMAIN_DEVICE_NVRAM:
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Cloud-Hypervisor doesn't support nvram"));
+ break;
+ case VIR_DOMAIN_DEVICE_RNG:
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Cloud-Hypervisor doesn't support rng"));
+ break;
+ case VIR_DOMAIN_DEVICE_SHMEM:
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Cloud-Hypervisor doesn't support shmem"));
+ break;
+ case VIR_DOMAIN_DEVICE_TPM:
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Cloud-Hypervisor doesn't support tpm"));
+ break;
+ case VIR_DOMAIN_DEVICE_PANIC:
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Cloud-Hypervisor doesn't support panic"));
+ break;
+ case VIR_DOMAIN_DEVICE_MEMORY:
+ ret = 0;
+ break;
+ case VIR_DOMAIN_DEVICE_IOMMU:
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Cloud-Hypervisor doesn't support iommu"));
+ break;
+ case VIR_DOMAIN_DEVICE_VSOCK:
+ ret = 0;
+ break;
+ case VIR_DOMAIN_DEVICE_AUDIO:
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Cloud-Hypervisor doesn't support audio"));
+ break;
+ case VIR_DOMAIN_DEVICE_NONE:
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("unexpected VIR_DOMAIN_DEVICE_NONE"));
+ break;
+
+ case VIR_DOMAIN_DEVICE_LAST:
+ default:
+ virReportEnumRangeError(virDomainDeviceType, dev->type);
+ break;
+ }
+
+ return ret;
+}
+
virDomainDefParserConfig virCHDriverDomainDefParserConfig = {
.domainPostParseBasicCallback = virCHDomainDefPostParseBasic,
.domainPostParseCallback = virCHDomainDefPostParse,
+ .devicesPostParseCallback = virCHDomainDeviceDefPostParse,
};
diff --git a/src/ch/ch_monitor.c b/src/ch/ch_monitor.c
index 87520a2639..1648d05017 100644
--- a/src/ch/ch_monitor.c
+++ b/src/ch/ch_monitor.c
@@ -359,125 +359,6 @@ virCHMonitorBuildNetsJson(virJSONValue *content, virDomainDef *vmdef)
return -1;
}
-static int
-virCHMonitorDetectUnsupportedDevices(virDomainDef *vmdef)
-{
- int ret = 0;
-
- if (vmdef->ngraphics > 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Cloud-Hypervisor doesn't support graphics"));
- ret = 1;
- }
- if (vmdef->ncontrollers > 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Cloud-Hypervisor doesn't support controllers"));
- ret = 1;
- }
- if (vmdef->nfss > 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Cloud-Hypervisor doesn't support fss"));
- ret = 1;
- }
- if (vmdef->ninputs > 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Cloud-Hypervisor doesn't support inputs"));
- ret = 1;
- }
- if (vmdef->nsounds > 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Cloud-Hypervisor doesn't support sounds"));
- ret = 1;
- }
- if (vmdef->naudios > 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Cloud-Hypervisor doesn't support audios"));
- ret = 1;
- }
- if (vmdef->nvideos > 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Cloud-Hypervisor doesn't support videos"));
- ret = 1;
- }
- if (vmdef->nhostdevs > 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Cloud-Hypervisor doesn't support hostdevs"));
- ret = 1;
- }
- if (vmdef->nredirdevs > 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Cloud-Hypervisor doesn't support redirdevs"));
- ret = 1;
- }
- if (vmdef->nsmartcards > 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Cloud-Hypervisor doesn't support smartcards"));
- ret = 1;
- }
- if (vmdef->nserials > 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Cloud-Hypervisor doesn't support serials"));
- ret = 1;
- }
- if (vmdef->nparallels > 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Cloud-Hypervisor doesn't support parallels"));
- ret = 1;
- }
- if (vmdef->nchannels > 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Cloud-Hypervisor doesn't support channels"));
- ret = 1;
- }
- if (vmdef->nconsoles > 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Cloud-Hypervisor doesn't support consoles"));
- ret = 1;
- }
- if (vmdef->nleases > 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Cloud-Hypervisor doesn't support leases"));
- ret = 1;
- }
- if (vmdef->nhubs > 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Cloud-Hypervisor doesn't support hubs"));
- ret = 1;
- }
- if (vmdef->nseclabels > 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Cloud-Hypervisor doesn't support seclabels"));
- ret = 1;
- }
- if (vmdef->nrngs > 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Cloud-Hypervisor doesn't support rngs"));
- ret = 1;
- }
- if (vmdef->nshmems > 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Cloud-Hypervisor doesn't support shmems"));
- ret = 1;
- }
- if (vmdef->nmems > 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Cloud-Hypervisor doesn't support mems"));
- ret = 1;
- }
- if (vmdef->npanics > 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Cloud-Hypervisor doesn't support panics"));
- ret = 1;
- }
- if (vmdef->nsysinfo > 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Cloud-Hypervisor doesn't support sysinfo"));
- ret = 1;
- }
-
- return ret;
-}
-
static int
virCHMonitorBuildVMJson(virDomainDef *vmdef, char **jsonstr)
{
@@ -490,9 +371,6 @@ virCHMonitorBuildVMJson(virDomainDef *vmdef, char **jsonstr)
goto cleanup;
}
- if (virCHMonitorDetectUnsupportedDevices(vmdef))
- goto cleanup;
-
if (virCHMonitorBuildCPUJson(content, vmdef) < 0)
goto cleanup;
--
2.31.1
3 years, 5 months
[PATCH v2 00/14] news update since v6.9 to v7.0
by Han Han
Diff from v1:
- Drop the news "Introduce VIR_DOMAIN_CHECKPOINT_REDEFINE_VALIDATE flag"
- Move the news of virt-aa-helper to bug fix part
- Update some descriptions of news
v1: https://listman.redhat.com/archives/libvir-list/2021-April/msg00456.html
Thanks for the advice from Peter Krempa and Erik Skultety.
Han Han (14):
news: make SEV attrs 'cbitpos' & 'reducedPhysBits' optional
news: support device stats collection for SR-IOV VF hostdev
news: virt-aa-helper: allow guest to create hard links for mounted
9pfs paths
news: cpu_map: Add EPYC-Rome cpu model
news: cpu: Support for XML validation in cpu comparison
logging: allow max_len=0 to disable log rollover
news: qemu: Set noqueue qdisc for TAP devices
news: qemu: Introduce virtio free page reporting feature
news: qemu: virtiofs can be used without NUMA nodes
news: qemu: Add 'fmode' and 'dmode' options for 9pfs
news: Introduce "migrate_tls_force" to qemu.conf
qemu: support kvm-poll-control performance hint
news: cpu_map: Add Snowridge cpu model
news: qemu: Add support for NFS disk protocol
NEWS.rst | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 74 insertions(+)
--
2.31.1
3 years, 5 months
[PATCH v1] meson: fix xenstore and xentoollog detection
by Olaf Hering
A xenstore.pc and xentoollog.pc exists only since Xen 4.9.
Fixes commit fe7c07adac30994dd042515e1076e195128e15cd
Signed-off-by: Olaf Hering <olaf(a)aepfle.de>
---
meson.build | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/meson.build b/meson.build
index 04c229d7f4..f3ff57d336 100644
--- a/meson.build
+++ b/meson.build
@@ -1500,14 +1500,22 @@ if not get_option('driver_libxl').disabled() and conf.has('WITH_LIBVIRTD')
endif
xl_util_dep = dependency('xlutil')
- xen_store_dep = dependency('xenstore')
+ # xenstore.pc exists since Xen 4.9
+ if libxl_dep.version().version_compare('>=4.9.0')
+ xen_store_dep = dependency('xenstore')
+ else
+ xen_store_dep = cc.find_library('xenstore')
+ endif
# xtl_* infrastructure is in libxentoollog since Xen 4.7 previously
# it was in libxenctrl.
- if libxl_dep.version().version_compare('>=4.7.0')
+ # xentoollog.pc exists since Xen 4.9
+ if libxl_dep.version().version_compare('>=4.9.0')
xtl_link_dep = dependency('xentoollog')
+ elif libxl_dep.version().version_compare('>=4.7.0')
+ xtl_link_dep = cc.find_library('xentoollog')
else
- xtl_link_dep = dependency('xenctrl')
+ xtl_link_dep = cc.find_library('xenctrl')
endif
if libxl_dep.version().version_compare('>=4.13.0')
3 years, 5 months