From 54fa3ebc2f67b340a62d70b2a3607f3c047d8e1b Mon Sep 17 00:00:00 2001 From: Shuichi Ihara Date: Sat, 3 Aug 2013 01:22:49 +0900 Subject: [PATCH] LU-3389 build: Fix build fails on RHEL6.4 kernel with OFED-3.5 OFED-3.5.1 supports RHEL6.4 kernel. CONFIG_COMPAT_RHEL_6_4 macro needs to build lustre with them. backport from http://review.whamcloud.com/6448 Signed-off-by: Shuichi Ihara Change-Id: Ib082bdf08d9a4b609178ff572cae677699d988fe Reviewed-on: http://review.whamcloud.com/7216 Tested-by: Hudson Tested-by: Maloo Reviewed-by: Oleg Drokin --- config/lustre-build-linux.m4 | 34 ++++++++++++++++++---------------- contrib/lbuild/lbuild | 11 +++++++++-- 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/config/lustre-build-linux.m4 b/config/lustre-build-linux.m4 index 59609da..909cb75 100644 --- a/config/lustre-build-linux.m4 +++ b/config/lustre-build-linux.m4 @@ -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) @@ -511,11 +508,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}/" diff --git a/contrib/lbuild/lbuild b/contrib/lbuild/lbuild index 1e82acd..13e04ba 100755 --- a/contrib/lbuild/lbuild +++ b/contrib/lbuild/lbuild @@ -568,9 +568,9 @@ download_ofed() { local location="http://www.openfabrics.org/downloads/OFED/ofed-${OFED_BASE_VERSION}/" - if [[ $OFED_VERSION = *-rc[0-9] ]]; then + if [[ $OFED_VERSION = *-[rR][cC][0-9] ]]; then local Mmv - Mmv=${OFED_VERSION%%-*} + Mmv=${OFED_VERSION%%-[rR][cC][0-9]} location="http://www.openfabrics.org/downloads/OFED/ofed-${Mmv}/" fi @@ -1655,6 +1655,13 @@ build_ofed() { local linuxrelease=$(find_linux_release "$linux") 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) if ! rpm2cpio < $rpm | cpio -id; then fatal 1 "could not unpack the ${kib_rpm}-devel rpm." -- 1.8.3.1