2016-03-03 22:52:13 +00:00
|
|
|
am-utils-6.2 - use Linux libtirpc if present
|
|
|
|
|
|
|
|
From: Ian Kent <raven@themaw.net>
|
|
|
|
|
|
|
|
For Linux systems, if the header files and shared libraries of libtirpc
|
|
|
|
are present use them instead of the glibc RPC implementation.
|
|
|
|
|
|
|
|
Signed-off-by: Ian Kent <raven@themaw.net>
|
|
|
|
---
|
|
|
|
Makefile.am | 3 ++-
|
|
|
|
configure.ac | 4 ++++
|
|
|
|
include/am_compat.h | 8 ++++++--
|
2018-02-06 06:28:44 +00:00
|
|
|
m4/macros/check_linux_libtirpc.m4 | 14 ++++++++++++++
|
|
|
|
4 files changed, 26 insertions(+), 3 deletions(-)
|
2016-03-03 22:52:13 +00:00
|
|
|
create mode 100644 m4/macros/check_linux_libtirpc.m4
|
|
|
|
|
|
|
|
diff --git a/Makefile.am b/Makefile.am
|
2018-02-06 06:28:44 +00:00
|
|
|
index bae4615e..e094e950 100644
|
2016-03-03 22:52:13 +00:00
|
|
|
--- a/Makefile.am
|
|
|
|
+++ b/Makefile.am
|
|
|
|
@@ -146,7 +146,8 @@ EXTRA_DIST_M4 = \
|
|
|
|
m4/macros/type_xdrproc_t.m4 \
|
|
|
|
m4/macros/type_xfs_args.m4 \
|
|
|
|
m4/macros/type_yp_order_outorder.m4 \
|
|
|
|
- m4/macros/with_addon.m4
|
|
|
|
+ m4/macros/with_addon.m4 \
|
|
|
|
+ m4/macros/check_linux_libtirpc.m4
|
|
|
|
|
|
|
|
EXTRA_DIST_CONF = \
|
|
|
|
conf/autofs/autofs_default.h \
|
|
|
|
diff --git a/configure.ac b/configure.ac
|
2018-02-06 06:28:44 +00:00
|
|
|
index ce619257..98b444d3 100644
|
2016-03-03 22:52:13 +00:00
|
|
|
--- a/configure.ac
|
|
|
|
+++ b/configure.ac
|
|
|
|
@@ -222,6 +222,9 @@ dnl lots of code. So I am forced to use a special purpose macro that sets
|
|
|
|
dnl the libraries based on the OS. Sigh. -Erez.
|
|
|
|
AMU_CHECK_OS_LIBS
|
|
|
|
|
|
|
|
+dnl use Linux libtirpc if possible
|
|
|
|
+AMU_CHECK_LIBTIRPC
|
|
|
|
+
|
|
|
|
dnl librpc and librpcsvc are needed on Solaris
|
|
|
|
AC_CHECK_LIB(rpc, clnt_sperrno)
|
|
|
|
AC_CHECK_LIB(rpcsvc, xdr_fhandle)
|
|
|
|
@@ -433,6 +436,7 @@ AC_CHECK_HEADERS( \
|
|
|
|
arpa/nameser.h \
|
|
|
|
arpa/inet.h \
|
|
|
|
bsd/rpc/rpc.h \
|
|
|
|
+ tirpc/netconfig.h \
|
|
|
|
cdfs/cdfsmount.h \
|
|
|
|
cdfs/cdfs_mount.h \
|
|
|
|
fs/udf/udf_mount.h \
|
|
|
|
diff --git a/include/am_compat.h b/include/am_compat.h
|
2018-02-06 06:28:44 +00:00
|
|
|
index 3463f3fa..d6826fc7 100644
|
2016-03-03 22:52:13 +00:00
|
|
|
--- a/include/am_compat.h
|
|
|
|
+++ b/include/am_compat.h
|
|
|
|
@@ -454,11 +454,15 @@ struct hsfs_args {
|
|
|
|
/*
|
|
|
|
* Define a dummy struct netconfig for non-TLI systems
|
|
|
|
*/
|
|
|
|
-#if !defined(HAVE_NETCONFIG_H) && !defined(HAVE_SYS_NETCONFIG_H)
|
|
|
|
+#if !defined(HAVE_NETCONFIG_H)
|
|
|
|
+# if !defined(HAVE_SYS_NETCONFIG_H)
|
|
|
|
+# if !defined(HAVE_TIRPC_NETCONFIG_H)
|
|
|
|
struct netconfig {
|
|
|
|
int dummy;
|
|
|
|
};
|
|
|
|
-#endif /* not HAVE_NETCONFIG_H and not HAVE_SYS_NETCONFIG_H */
|
|
|
|
+# endif /* not HAVE_TIRPC_NETCONFIG_H */
|
|
|
|
+# endif /* not HAVE_SYS_NETCONFIG_H */
|
|
|
|
+#endif /* not HAVE_NETCONFIG_H */
|
|
|
|
|
|
|
|
/* some OSs don't define INADDR_NONE and assume it's unsigned -1 */
|
|
|
|
#ifndef INADDR_NONE
|
|
|
|
diff --git a/m4/macros/check_linux_libtirpc.m4 b/m4/macros/check_linux_libtirpc.m4
|
|
|
|
new file mode 100644
|
2018-02-06 06:28:44 +00:00
|
|
|
index 00000000..0abd1ad3
|
2016-03-03 22:52:13 +00:00
|
|
|
--- /dev/null
|
|
|
|
+++ b/m4/macros/check_linux_libtirpc.m4
|
2018-02-06 06:28:44 +00:00
|
|
|
@@ -0,0 +1,14 @@
|
2016-03-03 22:52:13 +00:00
|
|
|
+dnl ######################################################################
|
|
|
|
+dnl Check for Linux libtirpc library
|
|
|
|
+AC_DEFUN([AMU_CHECK_LIBTIRPC],[
|
|
|
|
+AC_CHECK_HEADER(tirpc/netconfig.h,[
|
2018-02-06 06:28:44 +00:00
|
|
|
+ amu_check_libtirpc_save_CPPFLAGS=$CPPFLAGS
|
|
|
|
+ CPPFLAGS="$CPPFLAGS -I/usr/include/tirpc"
|
|
|
|
+ AC_CHECK_LIB(tirpc,clnt_tli_create,,amu_check_libtirpc=notfound)])
|
|
|
|
+ if test "$amu_check_libtirpc" = "notfound"
|
|
|
|
+ then
|
|
|
|
+ CPPFLAGS="$amu_check_libtirpc_save_CPPFLAGS"
|
|
|
|
+ else
|
|
|
|
+ AC_DEFINE(HAVE_LIBTIRPC, 1, [Define to 1 if you have libtirpc headers installed])
|
|
|
|
+ fi
|
2016-03-03 22:52:13 +00:00
|
|
|
+])
|