for O2IBPATH in $O2IBPATHS; do
AS_IF([test \( -f ${O2IBPATH}/include/rdma/rdma_cm.h -a \
-f ${O2IBPATH}/include/rdma/ib_cm.h -a \
- -f ${O2IBPATH}/include/rdma/ib_verbs.h -a \
- -f ${O2IBPATH}/include/rdma/ib_fmr_pool.h \)], [
+ -f ${O2IBPATH}/include/rdma/ib_verbs.h \)], [
o2ib_found=true
break
])
#include <rdma/rdma_cm.h>
#include <rdma/ib_cm.h>
#include <rdma/ib_verbs.h>
- #include <rdma/ib_fmr_pool.h>
],[
struct rdma_cm_id *cm_idi __attribute__ ((unused));
struct rdma_conn_param conn_param __attribute__ ((unused));
struct ib_device_attr device_attr __attribute__ ((unused));
struct ib_qp_attr qp_attr __attribute__ ((unused));
- struct ib_pool_fmr pool_fmr __attribute__ ((unused));
enum ib_cm_rej_reason rej_reason __attribute__ ((unused));
rdma_destroy_id(NULL);
],[
AS_IF([test $ENABLEO2IB != "no"], [
EXTRA_CHECK_INCLUDE="$EXTRA_OFED_CONFIG $EXTRA_OFED_INCLUDE"
+ KBUILD_EXTRA_SYMBOLS="$KBUILD_EXTRA_SYMBOLS $O2IBPATH/Module.symvers"
# In RHEL 6.2, rdma_create_id() takes the queue-pair type as a fourth argument
LB_CHECK_COMPILE([if 'rdma_create_id' wants four args],
[rdma_reject has 4 arguments])
])
+ # The FMR pool API was removed in Linux 5.8,
+ # commit 4e373d5417ecbb4f438a8500f0379a2fc29c2643
+ LB_CHECK_COMPILE([if FMR pools API available],
+ ib_fmr, [
+ #include <rdma/ib_verbs.h>
+ ],[
+ struct ib_fmr fmr = {};
+ ],[
+ AC_DEFINE(HAVE_FMR_POOL_API, 1,
+ [FMR pool API is available])
+ ])
+
+ # rdma_connect_locked() was added in Linux 5.10,
+ # commit 071ba4cc559de47160761b9500b72e8fa09d923d
+ # and in MOFED-5.2-2. rdma_connect_locked() must
+ # be called instead of rdma_connect() in
+ # RDMA_CM_EVENT_ROUTE_RESOLVED handler.
+ LB_CHECK_COMPILE([if 'rdma_connect_locked' exists],
+ rdma_connect_locked, [
+ #include <rdma/rdma_cm.h>
+ ],[
+ rdma_connect_locked(NULL, NULL);
+ ],[
+ AC_DEFINE(HAVE_RDMA_CONNECT_LOCKED, 1,
+ [rdma_connect_locked is defined])
+ ])
+
+ # ethtool_link_settings was added in Linux 4.6
+ LB_CHECK_COMPILE([if 'ethtool_link_settings' exists],
+ ethtool_link_settings, [
+ #include <linux/ethtool.h>
+ ],[
+ struct ethtool_link_ksettings cmd;
+ ],[
+ AC_DEFINE(HAVE_ETHTOOL_LINK_SETTINGS, 1,
+ [ethtool_link_settings is defined])
+ ])
+
EXTRA_CHECK_INCLUDE=""
AC_DEFUN([LN_CONFIG_O2IB_SRC], [])
AC_DEFUN([LN_CONFIG_O2IB_RESULTS], [])
AC_MSG_NOTICE([LNet core checks
==============================================================================])
+# lnet/utils/lnetconfig/liblnetconfig_netlink.c
+AS_IF([test "x$enable_dist" = xno], [
+ PKG_CHECK_MODULES(LIBNL3, [libnl-genl-3.0 >= 3.1])
+])
+
+AC_CHECK_LIB([nl-3], [nla_get_s32], [
+ AC_DEFINE(HAVE_NLA_GET_S32, 1,
+ [libnl3 supports nla_get_s32])
+ ], [
+])
+
+AC_CHECK_LIB([nl-3], [nla_get_s64], [
+ AC_DEFINE(HAVE_NLA_GET_S64, 1,
+ [libnl3 supports nla_get_s64])
+ ], [
+])
+
+#
+# LN_USR_NLMSGERR
+#
+AC_DEFUN([LN_USR_NLMSGERR], [
+AC_MSG_CHECKING([if 'enum nlmsgerr_attrs' exists])
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+ #include <linux/netlink.h>
+
+ int main(void) {
+ int x = (int)NLMSGERR_ATTR_MAX;
+ return x;
+ }
+])],[
+ AC_DEFINE(HAVE_USRSPC_NLMSGERR, 1,
+ ['enum nlmsgerr_attrs' exists])
+])
+]) # LN_USR_NLMGSERR
+
# lnet/utils/portals.c
AC_CHECK_HEADERS([netdb.h])
AC_CHECK_FUNCS([gethostbyname])
LN_CONFIG_DLC
LN_USR_RDMA
+LN_USR_NLMSGERR
]) # LN_CONFIGURE
#