diff --git a/m4/virt-driver-libxl.m4 b/m4/virt-driver-libxl.m4 index 422ff27022..479d9116a4 100644 --- a/m4/virt-driver-libxl.m4 +++ b/m4/virt-driver-libxl.m4 @@ -29,11 +29,31 @@ AC_DEFUN([LIBVIRT_DRIVER_CHECK_LIBXL], [ LIBXL_API_VERSION="-DLIBXL_API_VERSION=0x040500" dnl search for libxl, aka libxenlight - LIBVIRT_CHECK_PKG([LIBXL], [xenlight], [4.6.0]) + old_with_libxl="$with_libxl" + LIBVIRT_CHECK_PKG([LIBXL], [xenlight], [4.6.0], [true]) if test "x$with_libxl" = "xyes" ; then LIBXL_FIRMWARE_DIR=$($PKG_CONFIG --variable xenfirmwaredir xenlight) LIBXL_EXECBIN_DIR=$($PKG_CONFIG --variable libexec_bin xenlight) + fi + dnl In Fedora <= 28, the xenlight pkgconfig file is in the -runtime package + dnl https://bugzilla.redhat.com/show_bug.cgi?id=1629643 + dnl Until Fedora 28 reaches EOL, fallback to lib probe if xenlight.pc is + dnl not found + if test "x$with_libxl" = "xno" ; then + with_libxl="$old_with_libxl" + + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $LIBXL_API_VERSION" + LIBVIRT_CHECK_LIB([LIBXL], [xenlight], [libxl_cpupool_cpuadd_cpumap], [libxl.h], [fail="1"]) + CFLAGS="$save_CFLAGS" + + if test $fail = 1; then + AC_MSG_ERROR([You must install the libxl Library from Xen >= 4.6 to compile libxenlight driver with -lxl]) + fi + fi + + if test "$with_libxl" = "yes"; then LIBXL_CFLAGS="$LIBXL_CFLAGS $LIBXL_API_VERSION" dnl If building with libxl, use the libxl utility header and lib too