From b8b1e7f176943f742b3d802d93f066cafffd6254 Mon Sep 17 00:00:00 2001 From: Dmitry Eremin Date: Wed, 29 May 2013 21:30:15 +0400 Subject: [PATCH] LU-3173 build: Incorrect detection of ldiskfs series to use Extract correct upstream kernel release for RHEL kernels and form it into RHEL_KERNEL_VERSION as $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)-$(RHEL_RELEASE) Then use this string for correct ldiskfs series selection. Signed-off-by: Dmitry Eremin Change-Id: Idda0a4b02a5090b7be6fb81b8f98175559e575aa Reviewed-on: http://review.whamcloud.com/6056 Tested-by: Hudson Tested-by: Maloo Reviewed-by: Andreas Dilger Reviewed-by: Bob Glossman --- ldiskfs/config/ldiskfs-build.m4 | 54 ++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 30 deletions(-) diff --git a/ldiskfs/config/ldiskfs-build.m4 b/ldiskfs/config/ldiskfs-build.m4 index be144de..38fce59 100644 --- a/ldiskfs/config/ldiskfs-build.m4 +++ b/ldiskfs/config/ldiskfs-build.m4 @@ -5,20 +5,17 @@ AC_DEFUN([LDISKFS_AC_LINUX_VERSION], [ utsrelease2=${LINUX_OBJ}/include/linux/utsrelease.h utsrelease3=${LINUX_OBJ}/include/generated/utsrelease.h AS_IF([test -r ${utsrelease1} && fgrep -q UTS_RELEASE ${utsrelease1}], [ - utsrelease=linux/version.h + utsrelease=${utsrelease1} ], [test -r ${utsrelease2} && fgrep -q UTS_RELEASE ${utsrelease2}], [ - utsrelease=linux/utsrelease.h + utsrelease=${utsrelease2} ], [test -r ${utsrelease3} && fgrep -q UTS_RELEASE ${utsrelease3}], [ - utsrelease=generated/utsrelease.h + utsrelease=${utsrelease3} ]) - AS_IF([test "${utsrelease}"], [ - kernsrcver=$((echo "#include <$utsrelease>"; - echo "kernsrcver=UTS_RELEASE") | - cpp -I ${LINUX_OBJ}/include | - grep "^kernsrcver=" | cut -d \" -f 2) - - AS_IF([test -z "$kernsrcver"], [ + AS_IF([test ! -z "${utsrelease}"], [ + UTS_RELEASE=$(awk -F \" '/ UTS_RELEASE / { print [$]2 }' \ + ${utsrelease}) + AS_IF([test -z "$UTS_RELEASE"], [ AC_MSG_RESULT([Not found]) AC_MSG_ERROR([*** Cannot determine kernel version.]) ]) @@ -29,11 +26,11 @@ AC_DEFUN([LDISKFS_AC_LINUX_VERSION], [ *** This is often provided by the kernel-devel package.]) ]) - AC_MSG_RESULT([${kernsrcver}]) + AC_MSG_RESULT([${UTS_RELEASE}]) - LINUX_VERSION=${kernsrcver} + LINUX_VERSION=${UTS_RELEASE} AC_SUBST(LINUX_VERSION) - LINUXRELEASE=${kernsrcver} + LINUXRELEASE=${UTS_RELEASE} AC_SUBST(LINUXRELEASE) ]) @@ -62,22 +59,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) @@ -635,8 +629,8 @@ AS_IF([$1], [ SER= AS_IF([test x$RHEL_KERNEL = xyes], [ - AS_VERSION_COMPARE([$LINUXRELEASE],[2.6.32-343],[ - AS_VERSION_COMPARE([$LINUXRELEASE],[2.6.32],[], + AS_VERSION_COMPARE([$RHEL_KERNEL_VERSION],[2.6.32-343],[ + AS_VERSION_COMPARE([$RHEL_KERNEL_VERSION],[2.6.32],[], [SER="2.6-rhel6.series"],[SER="2.6-rhel6.series"])], [SER="2.6-rhel6.4.series"],[SER="2.6-rhel6.4.series"]) ], [test x$SUSE_KERNEL = xyes], [ -- 1.8.3.1