]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virsh: workaround readline prototypes warnings
authorRoman Bogorodskiy <bogorodskiy@gmail.com>
Fri, 26 May 2017 17:43:42 +0000 (21:43 +0400)
committerRoman Bogorodskiy <bogorodskiy@gmail.com>
Thu, 8 Jun 2017 17:03:34 +0000 (21:03 +0400)
When building with clang 4.0.0, virsh build fails like this:

gmake[3]: Entering directory '/usr/home/novel/code/libvirt/tools'
  CC       virsh-virsh.o
In file included from virsh.c:45:
In file included from /usr/local/include/readline/readline.h:31:
/usr/local/include/readline/rltypedefs.h:35:22: error: this function declaration is not a prototype [-Werror,-Wstrict-prototypes]
typedef int Function () __attribute__ ((deprecated));
                     ^
                      void
/usr/local/include/readline/rltypedefs.h:36:24: error: this function declaration is not a prototype [-Werror,-Wstrict-prototypes]
typedef void VFunction () __attribute__ ((deprecated));
                       ^
                        void
/usr/local/include/readline/rltypedefs.h:37:26: error: this function declaration is not a prototype [-Werror,-Wstrict-prototypes]
typedef char *CPFunction () __attribute__ ((deprecated));
                         ^
                          void
/usr/local/include/readline/rltypedefs.h:38:28: error: this function declaration is not a prototype [-Werror,-Wstrict-prototypes]
typedef char **CPPFunction () __attribute__ ((deprecated));
                           ^
                            void
In file included from virsh.c:45:
/usr/local/include/readline/readline.h:385:23: error: this function declaration is not a prototype [-Werror,-Wstrict-prototypes]
extern int rl_message ();
                      ^
                       void
5 errors generated.
gmake[3]: *** [Makefile:2823: virsh-virsh.o] Error 1

Fix that by adding -D_FUNCTION_DEF to READLINE_CFLAGS to fix *Function
related warnings and add a check for stdarg.h so we have HAVE_STDARG_H
defined that's needed by the readline headers to use proper rl_message
declaration.

Bug report on the readline mailing list:

 http://lists.gnu.org/archive/html/bug-readline/2017-05/msg00004.html

configure.ac
m4/virt-readline.m4
tools/Makefile.am

index 1af5538eedf65ab18fbf0b7f7b28813bf6ce72a1..1a73b3466a225e1b14193bb3a1a9ced09b15f631 100644 (file)
@@ -328,7 +328,7 @@ dnl Availability of various common headers (non-fatal if missing).
 AC_CHECK_HEADERS([pwd.h regex.h sys/un.h \
   sys/poll.h syslog.h mntent.h net/ethernet.h linux/magic.h \
   sys/un.h sys/syscall.h sys/sysctl.h netinet/tcp.h ifaddrs.h \
-  libtasn1.h sys/ucred.h sys/mount.h])
+  libtasn1.h sys/ucred.h sys/mount.h stdarg.h])
 dnl Check whether endian provides handy macros.
 AC_CHECK_DECLS([htole64], [], [], [[#include <endian.h>]])
 AC_CHECK_FUNCS([stat stat64 __xstat __xstat64 lstat lstat64 __lxstat __lxstat64])
index ee70ea36b9da27d8c76d57bb19496c2202beac7c..9fba5148af7c3cfe140406357491f3a6befcb1ab 100644 (file)
@@ -45,7 +45,9 @@ 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_LIBS="$READLINE_LIBS $extra_LIBS"])
+    [READLINE_CFLAGS="-D_FUNCTION_DEF $READLINE_CFLAGS"
+     AC_SUBST(READLINE_CFLAGS)],
+    [READLINE_LIBS="$READLINE_LIBS $extra_LIBS"])
   LIBS=$lv_saved_libs
 ])
 
index 56691c289e9f17e705b8a20a6aa4200af1d1dbc3..3455214575c7e1af80a5d862a7d613a27c583033 100644 (file)
@@ -244,7 +244,8 @@ virsh_CFLAGS =                                                      \
                $(WARN_CFLAGS)                                  \
                $(PIE_CFLAGS)                                   \
                $(COVERAGE_CFLAGS)                              \
-               $(LIBXML_CFLAGS)
+               $(LIBXML_CFLAGS)                                \
+               $(READLINE_CFLAGS)
 
 virt_admin_SOURCES =                                           \
                virt-admin.c virt-admin.h                       \