X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=config%2Flustre-build-linux.m4;h=fb58fce0f6a7f42afaddb001d74cbf1354952a26;hb=f44a4604921f2450aab8997d80ba21ff1282b5b7;hp=95d20e2349ae364962a26d43f1d135adc5f229b7;hpb=da0952dffede006ed326af1bd94eced5f8f74618;p=fs%2Flustre-release.git diff --git a/config/lustre-build-linux.m4 b/config/lustre-build-linux.m4 index 95d20e23..fb58fce 100644 --- a/config/lustre-build-linux.m4 +++ b/config/lustre-build-linux.m4 @@ -44,7 +44,7 @@ AC_MSG_CHECKING([for Linux release]) if test -s $LINUX_OBJ/include/$AUTOCONF_HDIR/utsrelease.h ; then LINUXRELEASEHEADER=$AUTOCONF_HDIR/utsrelease.h else - LINUXRELEASEHEADER=linux/version.h + LINUXRELEASEHEADER=$VERSION_HDIR/version.h fi LB_LINUX_TRY_MAKE([ #include <$LINUXRELEASEHEADER> @@ -65,7 +65,7 @@ LB_LINUX_TRY_MAKE([ rm -f build/conftest.i if test x$LINUXRELEASE = x ; then AC_MSG_RESULT([unknown]) - AC_MSG_ERROR([Could not determine Linux release version from linux/version.h.]) + AC_MSG_ERROR([Could not determine Linux release version from $LINUXRELEASEHEADER.]) fi AC_MSG_RESULT([$LINUXRELEASE]) AC_SUBST(LINUXRELEASE) @@ -94,22 +94,19 @@ AC_MSG_RESULT($RELEASE) AC_SUBST(RELEASE) # check is redhat/suse kernels -AC_MSG_CHECKING([that RedHat kernel]) -LB_LINUX_TRY_COMPILE([ - #include - ],[ - #ifndef RHEL_RELEASE_CODE - #error "not redhat kernel" - #endif - ],[ +AC_MSG_CHECKING([for RedHat kernel version]) + AS_IF([fgrep -q RHEL_RELEASE ${LINUX_OBJ}/include/linux/version.h], [ RHEL_KERNEL="yes" - AC_MSG_RESULT([yes]) - ],[ - AC_MSG_RESULT([no]) -]) - -LB_LINUX_CONFIG([SUSE_KERNEL],[SUSE_KERNEL="yes"],[]) - + RHEL_RELEASE=$(expr 0$(awk -F \" '/ RHEL_RELEASE / { print [$]2 }' \ + ${LINUX_OBJ}/include/linux/version.h) + 1) + KERNEL_VERSION=$(sed -e 's/\(@<:@23@:>@\.@<:@0-9@:>@*\.@<:@0-9@:>@*\).*/\1/' <<< ${LINUXRELEASE}) + RHEL_KERNEL_VERSION=${KERNEL_VERSION}-${RHEL_RELEASE} + AC_SUBST(RHEL_KERNEL_VERSION) + AC_MSG_RESULT([${RHEL_KERNEL_VERSION}]) + ], [ + AC_MSG_RESULT([not found]) + LB_LINUX_CONFIG([SUSE_KERNEL],[SUSE_KERNEL="yes"],[]) + ]) ]) # LB_ARG_REPLACE_PATH(PACKAGE, PATH) @@ -222,8 +219,12 @@ LB_CHECK_FILE([$LINUX_OBJ/include/generated/autoconf.h],[AUTOCONF_HDIR=generated [LB_CHECK_FILE([$LINUX_OBJ/include/linux/autoconf.h],[AUTOCONF_HDIR=linux], [AC_MSG_ERROR([Run make config in $LINUX.])])]) AC_SUBST(AUTOCONF_HDIR) -LB_CHECK_FILE([$LINUX_OBJ/include/linux/version.h],[], - [AC_MSG_ERROR([Run make config in $LINUX.])]) +LB_CHECK_FILE([$LINUX_OBJ/include/linux/version.h], [VERSION_HDIR=linux], + [LB_CHECK_FILE([$LINUX_OBJ/include/generated/uapi/linux/version.h], + [VERSION_HDIR=generated/uapi/linux], + [AC_MSG_ERROR([Run make config in $LINUX.])]) + ]) + AC_SUBST(VERSION_HDIR) # ----------- kconfig.h exists --------------- # kernel 3.1, $LINUX/include/linux/kconfig.h is added @@ -240,7 +241,7 @@ LB_CHECK_FILE([$LINUX_OBJ/include/linux/kconfig.h], # tarred up the tree and ran make dep etc. in it, then # version.h gets overwritten with a standard linux one. -if grep rhconfig $LINUX_OBJ/include/linux/version.h >/dev/null ; then +if grep rhconfig $LINUX_OBJ/include/$VERSION_HDIR/version.h >/dev/null ; then # This is a clean kernel-source tree, we need to # enable extensive workarounds to get this to build # modules @@ -352,7 +353,8 @@ $2 AC_DEFUN([LB_LINUX_COMPILE_IFELSE], [m4_ifvaln([$1], [AC_LANG_CONFTEST([$1])])dnl rm -f build/conftest.o build/conftest.mod.c build/conftest.ko -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/`echo $target_cpu|sed -e 's/powerpc64/powerpc/' -e 's/x86_64/x86/' -e 's/i.86/x86/'`/include -I$LINUX/arch/`echo $target_cpu|sed -e 's/ppc.*/powerpc/' -e 's/x86_64/x86/' -e 's/i.86/x86/'`/include/generated -I$LINUX_OBJ/include -I$LINUX/include -I$LINUX_OBJ/include2 -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])], +SUBARCH=$(echo $target_cpu | sed -e 's/powerpc64/powerpc/' -e 's/x86_64/x86/' -e 's/i.86/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 -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]) @@ -513,11 +515,16 @@ else esac else if ! $compatrdma_found; then - if test -f $O2IBPATH/config.mk; 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_LNET_INCLUDE="$EXTRA_LNET_INCLUDE -DCONFIG_COMPAT_RHEL_6_4";; + esac fi if test -n "$BACKPORT_INCLUDES"; then OFED_BACKPORT_PATH="$O2IBPATH/${BACKPORT_INCLUDES/*\/kernel_addons/kernel_addons}/"