From 6f8b2c94ae68fb52d32f29699b2c4f65afec61ca Mon Sep 17 00:00:00 2001 From: zoulasc Date: Wed, 3 Sep 2014 09:04:04 -0400 Subject: [PATCH] Configure test for 64 bit xdr quad function (Ian Kent) --- ChangeLog | 4 ++++ configure.ac | 1 + libamu/xdr_func.c | 11 +++++++++++ 3 files changed, 16 insertions(+) diff --git a/ChangeLog b/ChangeLog index 7be0fb4e..b1bc0972 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2014-09-03 Christos Zoulas + + * configure test for 64 bit xdr function (raven at themaw.net) + 2014-09-01 Christos Zoulas * bug fix from raven at themaw.net to prevent writing v3 handle diff --git a/configure.ac b/configure.ac index d0071835..3d1bb00c 100644 --- a/configure.ac +++ b/configure.ac @@ -397,6 +397,7 @@ AC_CHECK_FUNCS( \ xdr_nfsstat \ xdr_nfstime \ xdr_pointer \ + xdr_u_int64_t \ xdr_readargs \ xdr_readdirargs \ xdr_readdirres \ diff --git a/libamu/xdr_func.c b/libamu/xdr_func.c index 0135d559..7453f701 100644 --- a/libamu/xdr_func.c +++ b/libamu/xdr_func.c @@ -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) { -- 2.34.1