Configure test for 64 bit xdr quad function (Ian Kent)
authorzoulasc <christos@zoulas.com>
Wed, 3 Sep 2014 13:04:04 +0000 (09:04 -0400)
committerzoulasc <christos@zoulas.com>
Wed, 3 Sep 2014 13:04:04 +0000 (09:04 -0400)
ChangeLog
configure.ac
libamu/xdr_func.c

index 7be0fb4e0a90399889cdf07c365efe2f4d27438d..b1bc0972c7b0d58fa1b485b52d9aa00323c625fe 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2014-09-03  Christos Zoulas <christos@zoulas.com>
+
+       * configure test for 64 bit xdr function (raven at themaw.net)
+
 2014-09-01  Christos Zoulas <christos@zoulas.com>
 
        * bug fix from raven at themaw.net to prevent writing v3 handle
index d0071835cb0aaf71e67c87ad52754729fe396f87..3d1bb00c3b9a2c87d8f7d921a1eb788c07418faf 100644 (file)
@@ -397,6 +397,7 @@ AC_CHECK_FUNCS(                     \
        xdr_nfsstat             \
        xdr_nfstime             \
        xdr_pointer             \
+       xdr_u_int64_t           \
        xdr_readargs            \
        xdr_readdirargs         \
        xdr_readdirres          \
index 0135d559a0bbdf3eaa694950406f1d01b4aad7e6..7453f701638a3bb352a736ea84b65a58b910426c 100644 (file)
@@ -974,6 +974,17 @@ xdr_am_cookieverf3(XDR *xdrs, am_cookieverf3 objp)
   return TRUE;
 }
 
+/*
+ * Not ideal, xdr_u_int64_t() is not defined in Linux glibc RPC
+ * but xdr_u_quad_t() is. But in libtirpc xdr_u_quad_t() is not
+ * defined and xdr_u_int64_t() is. So xdr_u_int64_t() is probably
+ * an expected standard xdr function so, if it isn't defined use
+ * an internal xdr_u_int64_t() that uses xdr_u_quad_t().
+ */
+#ifndef HAVE_XDR_U_INT64_T
+#define xdr_u_int64_t(xdrs, objp) xdr_u_quad_t(xdrs, objp)
+#endif /* HAVE_XDR_U_INT64_T */
+
 bool_t
 xdr_uint64(XDR *xdrs, uint64 *objp)
 {