Unfortunately the data reported by pkg-config is not completely
accurate, so until the issue has been fixed in readline we need
to work around it in libvirt.
The good news is that we only need the fix to land in FreeBSD
ports and macOS homebrew before we can drop the kludge, so
we're talking months rather than years.
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
m4/virt-readline.m4 | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/m4/virt-readline.m4 b/m4/virt-readline.m4
index 6fde47d2c8..0e83b026e0 100644
--- a/m4/virt-readline.m4
+++ b/m4/virt-readline.m4
@@ -43,6 +43,23 @@ AC_DEFUN([LIBVIRT_CHECK_READLINE],[
*) READLINE_CFLAGS="-D_FUNCTION_DEF $READLINE_CFLAGS" ;;
esac
fi
+
+ # Gross kludge for readline include path obtained through pkg-config.
+ #
+ # As of 8.0, upstream readline.pc has -I${includedir}/readline among
+ # its Cflags, which is clearly wrong. This does not affect Linux
+ # because ${includedir} is already part of the default include path,
+ # but on other platforms that's not the case and the result is that
+ # <readline/readline.h> can't be located, causing the build to fail.
+ # A patch solving this issue has already been posted upstream, so once
+ # the fix has landed in FreeBSD ports and macOS homebrew we can safely
+ # drop the kludge and rely on pkg-config alone on those platforms.
+ #
+ # [1]
http://lists.gnu.org/archive/html/bug-readline/2019-04/msg00007.html
+ case "$READLINE_CFLAGS" in
+ *include/readline*) READLINE_CFLAGS=$(echo $READLINE_CFLAGS | sed
s,include/readline,include,g) ;;
+ *) ;;
+ esac
])
AC_DEFUN([LIBVIRT_RESULT_READLINE],[
--
2.20.1