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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxx>

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@xxxxxxxxx>
---
 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@xxxxxxxxxx>
  */

+%#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__ */

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]