QSWCPPFLAGS="-I$QSNET/include/linux"
fi
fi
+
+ LB_LINUX_CONFIG([QSNET],[],[
+ LB_LINUX_CONFIG([QSNET_MODULE],[],[
+ AC_MSG_WARN([QSNET is not enabled in this kernel; not building qswnal.])
+ QSWNAL=""
+ QSWCPPFLAGS=""
+ ])
+ ])
else
AC_MSG_RESULT([no])
QSWNAL=""
])
EXTRA_KCFLAGS="$EXTRA_KCFLAGS_save"
fi
+if test -n "$VIBNAL"; then
+ EXTRA_KCFLAGS_save="$EXTRA_KCFLAGS"
+ EXTRA_KCFLAGS="$EXTRA_KCFLAGS $VIBCPPFLAGS"
+ AC_MSG_CHECKING([if Voltaire still uses void * sg addresses])
+ LB_LINUX_TRY_COMPILE([
+ #include <linux/list.h>
+ #include <asm/byteorder.h>
+ #ifdef __BIG_ENDIAN
+ # define CPU_BE 1
+ # define CPU_LE 0
+ #endif
+ #ifdef __LITTLE_ENDIAN
+ # define CPU_BE 0
+ # define CPU_LE 1
+ #endif
+ #include <vverbs.h>
+ #include <ib-cm.h>
+ #include <ibat.h>
+ ],[
+ vv_scatgat_t sg;
+
+ return &sg.v_address[3] == NULL;
+ ],[
+ AC_MSG_RESULT([yes])
+ VIBCPPFLAGS="$VIBCPPFLAGS -DIBNAL_VOIDSTAR_SGADDR=1"
+ ],[
+ AC_MSG_RESULT([no])
+ ])
+ AC_MSG_CHECKING([if page_to_phys() must avoid sign extension])
+ LB_LINUX_TRY_COMPILE([
+ #include <linux/kernel.h>
+ #include <linux/mm.h>
+ #include <linux/unistd.h>
+ #include <asm/system.h>
+ #include <asm/io.h>
+ ],[
+ struct page p;
+
+ switch (42) {
+ case 0:
+ case (sizeof(typeof(page_to_phys(&p))) < 8):
+ break;
+ }
+ ],[
+ AC_MSG_RESULT([yes])
+ VIBCPPFLAGS="$VIBCPPFLAGS -DIBNAL_32BIT_PAGE2PHYS=1"
+ ],[
+ AC_MSG_RESULT([no])
+ ])
+ EXTRA_KCFLAGS="$EXTRA_KCFLAGS_save"
+fi
AC_SUBST(VIBCPPFLAGS)
AC_SUBST(VIBNAL)
])
# Portals linux kernel checks
#
AC_DEFUN([LP_PROG_LINUX],
-[LP_CHECK_GCC_VERSION
-
-LP_CONFIG_ZEROCOPY
+[LP_CONFIG_ZEROCOPY
LP_CONFIG_AFFINITY
LP_CONFIG_QUADRICS
LP_CONFIG_GM
#
AC_DEFUN([LP_CONFIGURE],
[# portals/utils/portals.c
-AC_CHECK_HEADERS([netdb.h netinet/tcp.h asm/types.h endian.h])
+AC_CHECK_HEADERS([netdb.h netinet/tcp.h asm/types.h endian.h sys/ioctl.h])
AC_CHECK_FUNCS([gethostbyname socket connect])
# portals/utils/debug.c