From 97a56d8b54a22511a20bdb8d425c0f22c7d3d33d Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Tue, 5 Dec 2017 23:34:35 +0000 Subject: [PATCH] build: Allow libtirpc to be explicitly requested Some distributions like Gentoo no longer include the RPC stuff in their glibc packages. Signed-off-by: James Le Cuirot --- configure.ac | 12 ++++++++++++ libglusterfs/src/compat.h | 4 ++++ 2 files changed, 16 insertions(+) diff --git a/configure.ac b/configure.ac index ce689225c..2384375ff 100644 --- a/configure.ac +++ b/configure.ac @@ -291,6 +291,10 @@ else CFLAGS="${CFLAGS} -g -rdynamic" fi +AC_ARG_WITH([libtirpc], + AS_HELP_STRING([--with-libtirpc], [Use libtirpc as RPC implementation (instead of sunrpc)]), + [], [with_libtirpc=no]) + AC_ARG_ENABLE([privport_tracking], AC_HELP_STRING([--disable-privport_tracking], [Disable internal tracking of privileged ports.])) @@ -1050,6 +1054,14 @@ AC_SUBST(GF_DISTRIBUTION) GF_HOST_OS="" GF_LDFLAGS="-rdynamic" +if test "x$with_libtirpc" = "xyes" ; then + PKG_CHECK_MODULES([TIRPC], [libtirpc], + [GF_CFLAGS="$GF_CFLAGS $TIRPC_CFLAGS"; GF_LDFLAGS="$GF_LDFLAGS $TIRPC_LIBS";], + [AC_MSG_ERROR([libtirpc requested but library not found])] + ) + AC_DEFINE(HAVE_LIBTIRPC, 1, [Define if libtirpc is enabled.]) +fi + dnl check for gcc -Werror=format-security saved_CFLAGS=$CFLAGS CFLAGS="-Wformat -Werror=format-security" diff --git a/libglusterfs/src/compat.h b/libglusterfs/src/compat.h index f4da4b2a0..9959982a0 100644 --- a/libglusterfs/src/compat.h +++ b/libglusterfs/src/compat.h @@ -487,6 +487,8 @@ int gf_mkostemp (char *tmpl, int suffixlen, int flags); #define ST_CTIM_NSEC_SET(stbuf, val) do { } while (0); #endif +#ifndef HAVE_LIBTIRPC + #ifndef IXDR_GET_LONG #define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf)) #endif @@ -503,6 +505,8 @@ int gf_mkostemp (char *tmpl, int suffixlen, int flags); #define IXDR_PUT_U_LONG(buf, v) IXDR_PUT_LONG(buf, (long)(v)) #endif +#endif /* HAVE_LIBTIRPC */ + #if defined(__GNUC__) && !defined(RELAX_POISONING) /* Use run API, see run.h */ #include /* system(), mkostemp() */ -- 2.15.0