From 2fc3a704e7083afab0537cf0777521afa9cc1db6 Mon Sep 17 00:00:00 2001 From: Olaf Hering Date: Thu, 25 Mar 2021 17:26:12 +0100 Subject: [PATCH] libxl: use API 4.13 to support domUs with more than 4TB To support domUs with more than 4TB memory it is required to use LIBXL_API_VERSION >= 0x040800, which uses uint64_t for certained guest memory related quantities. Unfortunately this change is not straight forward. While most of the code in libxl.h handles the various LIBXL_API_VERSION variants correctly, the check for valid a LIBXL_API_VERSION at the beginning of the file was broken between Xen 4.7 and 4.13 - it did not cover for API changes introduced in Xen 4.7 and 4.8. This was fixed with xen-project/xen@c3999835df, which for libvirt means in practice either the libxl API from Xen 4.5 or 4.13+ can be used. This change uses pkgconfig to decide which API can be safely selected. Xen provides a pkgconfig file since Xen 4.6, which is also the lowest version expected by libvirt. Signed-off-by: Olaf Hering Reviewed-by: Jim Fehlig --- meson.build | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 3a664f343a..b827bd9275 100644 --- a/meson.build +++ b/meson.build @@ -1592,8 +1592,13 @@ if not get_option('driver_libxl').disabled() and conf.has('WITH_LIBVIRTD') xtl_link_dep = cc.find_library('xenctrl') endif + if libxl_dep.version().version_compare('>=4.13.0') + LIBXL_API_VERSION='0x041300' + else + LIBXL_API_VERSION='0x040500' + endif libxl_dep = declare_dependency( - compile_args: '-DLIBXL_API_VERSION=0x040500', + compile_args: '-DLIBXL_API_VERSION=' + LIBXL_API_VERSION, dependencies: [ libxl_dep, xtl_link_dep,