[libvirt] [PATCH 2/6] m4: readline: Extract code setting -D_FUNCTION_DEF

Andrea Bolognani abologna at redhat.com
Tue Apr 9 13:10:19 UTC 2019


The current code is a bit awkward, and we're going to need
to share it later anyway. We can drop the call to AC_SUBST()
while we're at it, since LIBVIRT_CHECK_LIB() already marks
READLINE_CFLAGS for substitution.

The new code goes to some extra length to avoid setting
-D_FUNCTION_DEF twice: this is mostly for cosmetic reasons,
and it's necessary because LIBVIRT_CHECK_READLINE() is called
twice: once on its own, and then once more as part of
LIBVIRT_CHECK_BASH_COMPLETION().

Signed-off-by: Andrea Bolognani <abologna at redhat.com>
---
 m4/virt-readline.m4 | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/m4/virt-readline.m4 b/m4/virt-readline.m4
index 34b3ff3c4a..ffaeacef75 100644
--- a/m4/virt-readline.m4
+++ b/m4/virt-readline.m4
@@ -58,10 +58,18 @@ AC_DEFUN([LIBVIRT_CHECK_READLINE],[
   # function, to ensure we aren't being confused by caching.
   LIBS=$lv_saved_libs
   AC_CHECK_LIB([readline], [rl_initialize],
-    [READLINE_CFLAGS="-D_FUNCTION_DEF $READLINE_CFLAGS"
-     AC_SUBST(READLINE_CFLAGS)],
+    [],
     [READLINE_LIBS="$READLINE_LIBS $extra_LIBS"])
   LIBS=$lv_saved_libs
+
+  # We need this to avoid compilation issues with modern compilers.
+  # See 9ea3424a178 for a more detailed explanation
+  if test "$with_readline" = "yes" ; then
+    case "$READLINE_CFLAGS" in
+      *-D_FUNCTION_DEF*) ;;
+      *) READLINE_CFLAGS="-D_FUNCTION_DEF $READLINE_CFLAGS" ;;
+    esac
+  fi
 ])
 
 AC_DEFUN([LIBVIRT_RESULT_READLINE],[
-- 
2.20.1




More information about the libvir-list mailing list