[libvirt] [PATCH v2 3/3] Unify int types handling in protocol files

Justin Clift justin at postgresql.org
Mon Jan 11 02:25:52 UTC 2016


Should this patch by itself be enough to fix the OSX compilation 
problem? :)

eg should I test it with just this?

+ Justin


On 2016-01-11 00:34, Roman Bogorodskiy wrote:
> From: Jasper Lievisse Adriaanse <jasper at openbsd.org>
> 
> Some of the protocol files already include handing of the missing int
> types such as xdr_uint64_t, some don't. To fix it everywhere, move out
> of the appropriate defines to the utils/virxdrdefs.h file and include
> it where needed.
> 
> Signed-off-by: Roman Bogorodskiy <bogorodskiy at gmail.com>
> ---
>  src/Makefile.am                |  1 +
>  src/admin/admin_protocol.x     |  2 ++
>  src/lxc/lxc_monitor_protocol.x | 19 +------------------
>  src/remote/remote_protocol.x   | 20 +-------------------
>  src/rpc/virnetprotocol.x       | 20 +-------------------
>  src/util/virxdrdefs.h          | 43 
> ++++++++++++++++++++++++++++++++++++++++++
>  6 files changed, 49 insertions(+), 56 deletions(-)
>  create mode 100644 src/util/virxdrdefs.h
> 
> diff --git a/src/Makefile.am b/src/Makefile.am
> index af22fc1..aa5ab69 100644
> --- a/src/Makefile.am
> +++ b/src/Makefile.am
> @@ -171,6 +171,7 @@ UTIL_SOURCES =							\
>  		util/viruri.h util/viruri.c			\
>  		util/virutil.c util/virutil.h			\
>  		util/viruuid.c util/viruuid.h			\
> +		util/virxdrdefs.h                               \
>  		util/virxml.c util/virxml.h			\
>  		$(NULL)
> 
> diff --git a/src/admin/admin_protocol.x b/src/admin/admin_protocol.x
> index 878983d..711201a 100644
> --- a/src/admin/admin_protocol.x
> +++ b/src/admin/admin_protocol.x
> @@ -22,6 +22,8 @@
>   * Author: Martin Kletzander <mkletzan at redhat.com>
>   */
> 
> +%#include "virxdrdefs.h"
> +
>  /*----- Data types. -----*/
> 
>  /* Length of long, but not unbounded, strings.
> diff --git a/src/lxc/lxc_monitor_protocol.x 
> b/src/lxc/lxc_monitor_protocol.x
> index 205d7c2..5e3d5d9 100644
> --- a/src/lxc/lxc_monitor_protocol.x
> +++ b/src/lxc/lxc_monitor_protocol.x
> @@ -4,24 +4,7 @@
>   * the libvirt_lxc helper program.
>   */
> 
> -/* cygwin's xdr implementation defines xdr_u_int64_t instead of 
> xdr_uint64_t
> - * and lacks IXDR_PUT_INT32 and IXDR_GET_INT32
> - */
> -%#ifdef HAVE_XDR_U_INT64_T
> -%# define xdr_uint64_t xdr_u_int64_t
> -%#endif
> -%#ifndef IXDR_PUT_INT32
> -%# define IXDR_PUT_INT32 IXDR_PUT_LONG
> -%#endif
> -%#ifndef IXDR_GET_INT32
> -%# define IXDR_GET_INT32 IXDR_GET_LONG
> -%#endif
> -%#ifndef IXDR_PUT_U_INT32
> -%# define IXDR_PUT_U_INT32 IXDR_PUT_U_LONG
> -%#endif
> -%#ifndef IXDR_GET_U_INT32
> -%# define IXDR_GET_U_INT32 IXDR_GET_U_LONG
> -%#endif
> +%#include "virxdrdefs.h"
> 
>  enum virLXCMonitorExitStatus {
>      VIR_LXC_MONITOR_EXIT_STATUS_ERROR,
> diff --git a/src/remote/remote_protocol.x 
> b/src/remote/remote_protocol.x
> index 80f4a8b..9f131f8 100644
> --- a/src/remote/remote_protocol.x
> +++ b/src/remote/remote_protocol.x
> @@ -38,27 +38,9 @@
> 
>  %#include <libvirt/libvirt.h>
>  %#include "internal.h"
> +%#include "virxdrdefs.h"
>  %#include <arpa/inet.h>
> 
> -/* cygwin's xdr implementation defines xdr_u_int64_t instead of 
> xdr_uint64_t
> - * and lacks IXDR_PUT_INT32 and IXDR_GET_INT32
> - */
> -%#ifdef HAVE_XDR_U_INT64_T
> -%# define xdr_uint64_t xdr_u_int64_t
> -%#endif
> -%#ifndef IXDR_PUT_INT32
> -%# define IXDR_PUT_INT32 IXDR_PUT_LONG
> -%#endif
> -%#ifndef IXDR_GET_INT32
> -%# define IXDR_GET_INT32 IXDR_GET_LONG
> -%#endif
> -%#ifndef IXDR_PUT_U_INT32
> -%# define IXDR_PUT_U_INT32 IXDR_PUT_U_LONG
> -%#endif
> -%#ifndef IXDR_GET_U_INT32
> -%# define IXDR_GET_U_INT32 IXDR_GET_U_LONG
> -%#endif
> -
>  /*----- Data types. -----*/
> 
>  /* Length of long, but not unbounded, strings.
> diff --git a/src/rpc/virnetprotocol.x b/src/rpc/virnetprotocol.x
> index 7b6f753..327a334 100644
> --- a/src/rpc/virnetprotocol.x
> +++ b/src/rpc/virnetprotocol.x
> @@ -21,27 +21,9 @@
>   */
> 
>  %#include "internal.h"
> +%#include "virxdrdefs.h"
>  %#include <arpa/inet.h>
> 
> -/* cygwin's xdr implementation defines xdr_u_int64_t instead of 
> xdr_uint64_t
> - * and lacks IXDR_PUT_INT32 and IXDR_GET_INT32
> - */
> -%#ifdef HAVE_XDR_U_INT64_T
> -%# define xdr_uint64_t xdr_u_int64_t
> -%#endif
> -%#ifndef IXDR_PUT_INT32
> -%# define IXDR_PUT_INT32 IXDR_PUT_LONG
> -%#endif
> -%#ifndef IXDR_GET_INT32
> -%# define IXDR_GET_INT32 IXDR_GET_LONG
> -%#endif
> -%#ifndef IXDR_PUT_U_INT32
> -%# define IXDR_PUT_U_INT32 IXDR_PUT_U_LONG
> -%#endif
> -%#ifndef IXDR_GET_U_INT32
> -%# define IXDR_GET_U_INT32 IXDR_GET_U_LONG
> -%#endif
> -
>  /*----- Data types. -----*/
> 
>  /* Initial message size.
> diff --git a/src/util/virxdrdefs.h b/src/util/virxdrdefs.h
> new file mode 100644
> index 0000000..40074dd
> --- /dev/null
> +++ b/src/util/virxdrdefs.h
> @@ -0,0 +1,43 @@
> +/*
> + * virxdrdefs.h
> + *
> + * Copyright (C) 2016 Red Hat, Inc.
> + *
> + * This library is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU Lesser General Public
> + * License as published by the Free Software Foundation; either
> + * version 2.1 of the License, or (at your option) any later version.
> + *
> + * This library is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> + * Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU Lesser General Public
> + * License along with this library.  If not, see
> + * <http://www.gnu.org/licenses/>.
> + */
> +
> +#ifndef __VIR_XDRDEFS_H__
> +# define __VIR_XDRDEFS_H__
> +
> +/* cygwin's xdr implementation defines xdr_u_int64_t instead of 
> xdr_uint64_t
> + * and lacks IXDR_PUT_INT32 and IXDR_GET_INT32
> + */
> +# ifdef HAVE_XDR_U_INT64_T
> +#  define xdr_uint64_t xdr_u_int64_t
> +# endif
> +# ifndef IXDR_PUT_INT32
> +#  define IXDR_PUT_INT32 IXDR_PUT_LONG
> +# endif
> +# ifndef IXDR_GET_INT32
> +#  define IXDR_GET_INT32 IXDR_GET_LONG
> +# endif
> +# ifndef IXDR_PUT_U_INT32
> +#  define IXDR_PUT_U_INT32 IXDR_PUT_U_LONG
> +# endif
> +# ifndef IXDR_GET_U_INT32
> +#  define IXDR_GET_U_INT32 IXDR_GET_U_LONG
> +# endif
> +
> +#endif /* __VIR_XDRDEFS_H__ */




More information about the libvir-list mailing list