From: Olaf Hering Date: Thu, 25 Mar 2021 16:26:12 +0000 (+0100) Subject: libxl: use API 4.13 to support domUs with more than 4TB X-Git-Tag: v7.3.0-rc1~379 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2fc3a704e7083afab0537cf0777521afa9cc1db6;p=thirdparty%2Flibvirt.git 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 --- 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,