[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