* Remove OFED backport headers for all components except lnet.
* Move all OFED related autoconf testing into lnet/autoconf.
* After OFED built is done, there should only be one -devel rpm.
We don't really need to filter out any version string.
Change-Id: If983ede2606e4c5c397f676cf16807f6e00318bc
Signed-off-by: Dmitry Eremin <dmitry.eremin@intel.com>
Reviewed-on: http://review.whamcloud.com/8451
Reviewed-by: James Simmons <uja.ornl@gmail.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Bob Glossman <bob.glossman@intel.com>
Reviewed-by: Shuichi Ihara <sihara@ddn.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
modules: $(DEP) all-sources
$(MAKE) CC="$(CC)" $(CROSS_VARS) -C $(LINUX_OBJ) \
-f $(PWD)/build/Makefile LUSTRE_LINUX_CONFIG=$(LINUX_CONFIG) \
- LINUXINCLUDE='$(EXTRA_LNET_INCLUDE) -I$$(srctree)/arch/$$(SRCARCH)/include -I$$(srctree)/arch/$$(SRCARCH)/include/generated -Iinclude $$(if $$(KBUILD_SRC),-Iinclude2 -I$$(srctree)/include) -I$$(srctree)/arch/$$(SRCARCH)/include/uapi -Iarch/$$(SRCARCH)/include/generated/uapi -I$$(srctree)/include/uapi -Iinclude/generated/uapi -include $(CONFIG_INCLUDE)' \
+ LINUXINCLUDE='-I$$(srctree)/arch/$$(SRCARCH)/include -I$$(srctree)/arch/$$(SRCARCH)/include/generated -Iinclude $$(if $$(KBUILD_SRC),-Iinclude2 -I$$(srctree)/include) -I$$(srctree)/arch/$$(SRCARCH)/include/uapi -Iarch/$$(SRCARCH)/include/generated/uapi -I$$(srctree)/include/uapi -Iinclude/generated/uapi -include $(CONFIG_INCLUDE)' \
$(MODULE_TARGET)=$(PWD) -o tmp_include_depends -o scripts -o \
include/config/MARKER $@
endif # LINUX
[m4_ifvaln([$1], [AC_LANG_CONFTEST([$1])])dnl
rm -f build/conftest.o build/conftest.mod.c build/conftest.ko
SUBARCH=$(echo $target_cpu | sed -e 's/powerpc64/powerpc/' -e 's/x86_64/x86/' -e 's/i.86/x86/' -e 's/k1om/x86/')
-AS_IF([AC_TRY_COMMAND(cp conftest.c build && make -d [$2] ${LD:+"LD=$LD"} CC="$CC" -f $PWD/build/Makefile LUSTRE_LINUX_CONFIG=$LINUX_CONFIG LINUXINCLUDE="$EXTRA_LNET_INCLUDE -I$LINUX/arch/$SUBARCH/include -I$LINUX/arch/$SUBARCH/include/generated -Iinclude -I$LINUX/include -Iinclude2 -I$LINUX/include/uapi -I$LINUX/include/generated -I$LINUX/arch/$SUBARCH/include/uapi -Iarch/$SUBARCH/include/generated/uapi -I$LINUX/include/uapi -Iinclude/generated/uapi ${SPL_OBJ:+-include $SPL_OBJ/spl_config.h} ${ZFS_OBJ:+-include $ZFS_OBJ/zfs_config.h} ${SPL:+-I$SPL -I$SPL/include } ${ZFS:+-I$ZFS -I$ZFS/include} -include $CONFIG_INCLUDE" -o tmp_include_depends -o scripts -o include/config/MARKER -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $CROSS_VARS $MODULE_TARGET=$PWD/build) >/dev/null && AC_TRY_COMMAND([$3])],
+AS_IF([AC_TRY_COMMAND(cp conftest.c build && make -d [$2] ${LD:+"LD=$LD"} CC="$CC" -f $PWD/build/Makefile LUSTRE_LINUX_CONFIG=$LINUX_CONFIG LINUXINCLUDE="$EXTRA_OFED_INCLUDE -I$LINUX/arch/$SUBARCH/include -I$LINUX/arch/$SUBARCH/include/generated -Iinclude -I$LINUX/include -Iinclude2 -I$LINUX/include/uapi -I$LINUX/include/generated -I$LINUX/arch/$SUBARCH/include/uapi -Iarch/$SUBARCH/include/generated/uapi -I$LINUX/include/uapi -Iinclude/generated/uapi ${SPL_OBJ:+-include $SPL_OBJ/spl_config.h} ${ZFS_OBJ:+-include $ZFS_OBJ/zfs_config.h} ${SPL:+-I$SPL -I$SPL/include } ${ZFS:+-I$ZFS -I$ZFS/include} -include $CONFIG_INCLUDE" -o tmp_include_depends -o scripts -o include/config/MARKER -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $CROSS_VARS $MODULE_TARGET=$PWD/build) >/dev/null && AC_TRY_COMMAND([$3])],
[$4],
[_AC_MSG_LOG_CONFTEST
m4_ifvaln([$5],[$5])dnl])
)]
)
-#
-# LB_CONFIG_COMPAT_RDMA
-#
-AC_DEFUN([LB_CONFIG_COMPAT_RDMA],
-[AC_MSG_CHECKING([whether to use Compat RDMA])
-# set default
-AC_ARG_WITH([o2ib],
- AC_HELP_STRING([--with-o2ib=path],
- [build o2iblnd against path]),
- [
- case $with_o2ib in
- yes) O2IBPATHS="$LINUX $LINUX/drivers/infiniband"
- ENABLEO2IB=2
- ;;
- no) ENABLEO2IB=0
- ;;
- *) O2IBPATHS=$with_o2ib
- ENABLEO2IB=3
- ;;
- esac
- ],[
- O2IBPATHS="$LINUX $LINUX/drivers/infiniband"
- ENABLEO2IB=1
- ])
-if test $ENABLEO2IB -eq 0; then
- AC_MSG_RESULT([no])
-else
- o2ib_found=false
- for O2IBPATH in $O2IBPATHS; do
- 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 \); then
- o2ib_found=true
- break
- fi
- done
- compatrdma_found=false
- if $o2ib_found; then
- if test \( -f ${O2IBPATH}/include/linux/compat-2.6.h \); then
- compatrdma_found=true
- AC_MSG_RESULT([yes])
- AC_DEFINE(HAVE_COMPAT_RDMA, 1, [compat rdma found])
- else
- AC_MSG_RESULT([no])
- fi
- fi
-fi
-])
-
-#
-# LB_CONFIG_OFED_BACKPORTS
-#
-# include any OFED backport headers in all compile commands
-# NOTE: this does only include the backport paths, not the OFED headers
-# adding the OFED headers is done in the lnet portion
-AC_DEFUN([LB_CONFIG_OFED_BACKPORTS],
-[AC_MSG_CHECKING([whether to use any OFED backport headers])
-if test $ENABLEO2IB -eq 0; then
- AC_MSG_RESULT([no])
-else
- if ! $o2ib_found; then
- AC_MSG_RESULT([no])
- case $ENABLEO2IB in
- 1) ;;
- 2) AC_MSG_ERROR([kernel OpenIB gen2 headers not present]);;
- 3) AC_MSG_ERROR([bad --with-o2ib path]);;
- *) AC_MSG_ERROR([internal error]);;
- esac
- else
- if ! $compatrdma_found; then
- if test -f $O2IBPATH/config.mk; then
- . $O2IBPATH/config.mk
- elif test -f $O2IBPATH/ofed_patch.mk; then
- . $O2IBPATH/ofed_patch.mk
- fi
- else
- if test x$RHEL_KERNEL = xyes; then
- case $RHEL_KERNEL_VERSION in
- 2.6.32-358*)
- EXTRA_LNET_INCLUDE="$EXTRA_LNET_INCLUDE -DCONFIG_COMPAT_RHEL_6_4";;
- esac
- elif test x$SUSE_KERNEL = xyes; then
- SP=$(grep PATCHLEVEL /etc/SuSE-release | sed -e 's/.*= *//')
- EXTRA_LNET_INCLUDE="$EXTRA_LNET_INCLUDE -DCONFIG_COMPAT_SLES_11_$SP"
- fi
- fi
- if test -n "$BACKPORT_INCLUDES"; then
- OFED_BACKPORT_PATH="$O2IBPATH/${BACKPORT_INCLUDES/*\/kernel_addons/kernel_addons}/"
- EXTRA_LNET_INCLUDE="-I$OFED_BACKPORT_PATH $EXTRA_LNET_INCLUDE"
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- fi
- fi
-fi
-])
-
# LC_MODULE_LOADING
# after 2.6.28 CONFIG_KMOD is removed, and only CONFIG_MODULES remains
# so we test if request_module is implemented or not
# 2.6.28
LC_MODULE_LOADING
-
-LB_CONFIG_COMPAT_RDMA
-
-# it's ugly to be doing anything with OFED outside of the lnet module, but
-# this has to be done here so that the backports path is set before all of
-# the LN_PROG_LINUX checks are done
-LB_CONFIG_OFED_BACKPORTS
])
#
cd ${kib_rpm}-devel
# the actual ofed RPMs don't have the -rc$n or -$date string appened that
# might be present on the file
- local linuxrelease=$(find_linux_release)
- ofed_version=$(echo $ofed_version |
- sed -re 's/-(20[0-9]{6,6}-[0-9]{4,4}|rc[0-9]*)$//')
+ #local linuxrelease=$(find_linux_release)
+ #ofed_version=$(echo $ofed_version |
+ # sed -re 's/-(20[0-9]{6,6}-[0-9]{4,4}|rc[0-9]*)$//')
# FIXME
# OFED version will have 'hyphen' for minor release. (e.g. 3.5-1, instead
# of 3.5.1) compat-rdma and compat-rdma-devel could have same version
# number, but currectly not. Once OFED fix this in the future release, we
# can remove following filter.
- ofed_version=$(echo $ofed_version |
- sed -re 's/-([0-9]*-[rR][cC][0-9]*)$//')
- local rpm=$(ls $TOPDIR/RPMS/*/${kib_rpm}-devel-${ofed_version}-${linuxrelease//-/_}.*.rpm)
+ #ofed_version=$(echo $ofed_version |
+ # sed -re 's/-([0-9]*-[rR][cC][0-9]*)$//')
+ #local rpm=$(ls $TOPDIR/RPMS/*/${kib_rpm}-devel-${ofed_version}-${linuxrelease//-/_}.*.rpm)
+ # I dont' know why we have gone through the trouble to filter out the name
+ # of the rpm there should only be one ${kib_rpm}-devel built
+ local rpm=$(ls $TOPDIR/RPMS/*/${kib_rpm}-devel-*.rpm)
if ! rpm2cpio < $rpm | cpio -id; then
fatal 1 "could not unpack the ${kib_rpm}-devel rpm."
fi
#
# LN_CONFIG_O2IB
#
-AC_DEFUN([LN_CONFIG_O2IB],[
-
-AC_MSG_CHECKING([whether to enable OpenIB gen2 support])
+AC_DEFUN([LN_CONFIG_O2IB],
+[AC_MSG_CHECKING([whether to use Compat RDMA])
# set default
AC_ARG_WITH([o2ib],
AC_HELP_STRING([--with-o2ib=path],
ENABLEO2IB=1
])
if test $ENABLEO2IB -eq 0; then
- AC_MSG_RESULT([disabled])
+ AC_MSG_RESULT([no])
else
o2ib_found=false
for O2IBPATH in $O2IBPATHS; do
fi
o2ib_found=true
break
- fi
+ fi
done
if ! $o2ib_found; then
AC_MSG_RESULT([no])
*) AC_MSG_ERROR([internal error]);;
esac
else
+ compatrdma_found=false
+ if test -f ${O2IBPATH}/include/linux/compat-2.6.h; then
+ compatrdma_found=true
+ AC_MSG_RESULT([yes])
+ AC_DEFINE(HAVE_COMPAT_RDMA, 1, [compat rdma found])
+ else
+ AC_MSG_RESULT([no])
+ fi
+ if ! $compatrdma_found; then
+ if test -f $O2IBPATH/config.mk; then
+ . $O2IBPATH/config.mk
+ elif test -f $O2IBPATH/ofed_patch.mk; then
+ . $O2IBPATH/ofed_patch.mk
+ fi
+ else
+ case $RHEL_KERNEL_VERSION in
+ 2.6.32-358*)
+ EXTRA_OFED_INCLUDE="$EXTRA_OFED_INCLUDE -DCONFIG_COMPAT_RHEL_6_4";;
+ esac
+ fi
+ AC_MSG_CHECKING([whether to use any OFED backport headers])
+ if test -n "$BACKPORT_INCLUDES"; then
+ OFED_BACKPORT_PATH="$O2IBPATH/${BACKPORT_INCLUDES/*\/kernel_addons/kernel_addons}/"
+ EXTRA_OFED_INCLUDE="-I$OFED_BACKPORT_PATH $EXTRA_OFED_INCLUDE"
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ fi
+
+ AC_MSG_CHECKING([whether to enable OpenIB gen2 support])
O2IBPATH=$(readlink --canonicalize $O2IBPATH)
- O2IBCPPFLAGS="-I$O2IBPATH/include"
- EXTRA_KCFLAGS_save="$EXTRA_KCFLAGS"
- EXTRA_KCFLAGS="$EXTRA_KCFLAGS $O2IBCPPFLAGS"
- EXTRA_LNET_INCLUDE="$EXTRA_LNET_INCLUDE $O2IBCPPFLAGS"
+ EXTRA_OFED_INCLUDE="$EXTRA_OFED_INCLUDE -I$O2IBPATH/include"
LB_LINUX_TRY_COMPILE([
#include <linux/version.h>
*) AC_MSG_ERROR([internal error]);;
esac
O2IBLND=""
- O2IBCPPFLAGS=""
])
# we know at this point that the found OFED source is good
O2IB_SYMVER=""
fi
LN_CONFIG_OFED_SPEC
- EXTRA_KCFLAGS="$EXTRA_KCFLAGS_save"
fi
fi
-AC_SUBST(EXTRA_LNET_INCLUDE)
-AC_SUBST(O2IBCPPFLAGS)
+AC_SUBST(EXTRA_OFED_INCLUDE)
AC_SUBST(O2IBLND)
# In RHEL 6.2, rdma_create_id() takes the queue-pair type as a fourth argument
MODULES := ko2iblnd
ko2iblnd-objs := o2iblnd.o o2iblnd_cb.o o2iblnd_modparams.o
-# Need to make sure we use PRE, not POST here so that an external OFED
-# source pool overrides any in-kernel OFED sources
-EXTRA_PRE_CFLAGS := @O2IBCPPFLAGS@
+# Need to make sure that an external OFED source pool overrides
+# any in-kernel OFED sources
+NOSTDINC_FLAGS += @EXTRA_OFED_INCLUDE@
@INCLUDE_RULES@