X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=ldiskfs%2Fconfig%2Fldiskfs-build.m4;h=8a008725f1871f545d3fd7a5c17fc48a6a033cc5;hb=58fcb8ac7eaae96c933796a01175fe7d41157b25;hp=fc2d7729778ae3951759d239220b8b638f6017ce;hpb=6a95f4546b50d63b9cf7e97c931f694bc25a9704;p=fs%2Flustre-release.git diff --git a/ldiskfs/config/ldiskfs-build.m4 b/ldiskfs/config/ldiskfs-build.m4 index fc2d772..8a00872 100644 --- a/ldiskfs/config/ldiskfs-build.m4 +++ b/ldiskfs/config/ldiskfs-build.m4 @@ -1,24 +1,21 @@ AC_DEFUN([LDISKFS_AC_LINUX_VERSION], [ AC_MSG_CHECKING([kernel source version]) - utsrelease1=${LINUX_OBJ}/include/linux/version.h + utsrelease1=${LINUX_OBJ}/include/generated/utsrelease.h utsrelease2=${LINUX_OBJ}/include/linux/utsrelease.h - utsrelease3=${LINUX_OBJ}/include/generated/utsrelease.h + utsrelease3=${LINUX_OBJ}/include/linux/version.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/$VERSION_HDIR/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/$VERSION_HDIR/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) @@ -190,8 +184,14 @@ 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 @@ -208,7 +208,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 @@ -627,82 +627,30 @@ AC_MSG_RESULT([$LDISKFS_SYMBOLS]) AC_SUBST(LDISKFS_SYMBOLS) ]) -AC_DEFUN([LB_LDISKFS_RELEASE], -[ -AC_MSG_CHECKING([ldiskfs source release]) -if test -r $LDISKFS_OBJ/config.h; then - tmp_flags="$EXTRA_KCFLAGS" - EXTRA_KCFLAGS="-I$LDISKFS_DIR $EXTRA_KCFLAGS" - LB_LINUX_TRY_MAKE([ - #undef PACKAGE_NAME - #undef PACKAGE_TARNAME - #undef PACKAGE_VERSION - #undef PACKAGE_STRING - #undef PACKAGE_BUGREPORT - #undef PACKAGE - #undef VERSION - #undef STDC_HEADERS - - #include <$LDISKFS_OBJ/config.h> - ],[ - char *LDISKFS_RELEASE; - LDISKFS_RELEASE=VERSION; - ],[ - $makerule LUSTRE_KERNEL_TEST=conftest.i - ],[ - test -s build/conftest.i - ],[ - eval $(grep "LDISKFS_RELEASE=" build/conftest.i) - ],[ - AC_MSG_RESULT([unknown]) - AC_MSG_ERROR([Could not preprocess test program.]) - ]) - EXTRA_KCFLAGS="$tmp_flags" - rm build/conftest.i -elif test -r $LDISKFS_DIR/configure.ac; then - LDISKFS_RELEASE=$(awk '/AC\_INIT/ { print [$]3 }' \ - $LDISKFS_DIR/configure.ac | tr ',' '\n') -else - AC_MSG_RESULT([unknown]) - AC_MSG_ERROR([Could not locate config.h, META, or configure.ac to check release.]) -fi - -if test x$LDISKFS_RELEASE = x; then - AC_MSG_RESULT([unknown]) - AC_MSG_ERROR([Could not determine ldiskfs release.]) -fi - -AC_MSG_RESULT([$LDISKFS_RELEASE]) -AC_SUBST(LDISKFS_RELEASE) -]) - AC_DEFUN([LB_LDISKFS_SERIES], [ -if $1; then +LDISKFS_SERIES= +AS_IF([$1], [ AC_MSG_CHECKING([which ldiskfs series to use]) - case $LINUXRELEASE in - 2.6.32*) - if test x$RHEL_KERNEL = xyes; then - LDISKFS_SERIES="2.6-rhel6.series" - fi - if test x$SUSE_KERNEL = xyes; then - LDISKFS_SERIES="2.6-sles11.series" - fi - ;; - 3.0.*) - if test x$SUSE_KERNEL = xyes; then - LDISKFS_SERIES="3.0-sles11.series" - fi - ;; - *) - AC_MSG_WARN([Unknown kernel version $LINUXRELEASE]) - LDISKFS_SERIES= - ;; - esac + + SER= + AS_IF([test x$RHEL_KERNEL = xyes], [ + 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], [ + AS_VERSION_COMPARE([$LINUXRELEASE],[3.0.0],[ + AS_VERSION_COMPARE([$LINUXRELEASE],[2.6.32],[], + [SER="2.6-sles11.series"],[SER="2.6-sles11.series"])], + [SER="3.0-sles11.series"],[SER="3.0-sles11.series"]) + ]) + LDISKFS_SERIES=$SER + + AS_IF([test -z "$LDISKFS_SERIES"], + [AC_MSG_WARN([Unknown kernel version $LINUXRELEASE])]) AC_MSG_RESULT([$LDISKFS_SERIES]) -else - LDISKFS_SERIES= -fi +]) AC_SUBST(LDISKFS_SERIES) ])