From 0352c34385896230c26c1c727844384c7d3ad3a8 Mon Sep 17 00:00:00 2001 From: yangsheng Date: Wed, 10 Jul 2013 13:52:41 +0800 Subject: [PATCH] LU-2686 kernel: Kernel update for 3.7.2-201.fc18 Add uapi header to include search path Signed-off-by: yang sheng Signed-off-by: James Simmons Change-Id: Id90e091fef63ebf5bb8e7765969aa3148cc31aa2 Reviewed-on: http://review.whamcloud.com/5974 Tested-by: Hudson Tested-by: Maloo Reviewed-by: Alexey Shvetsov Reviewed-by: Oleg Drokin --- autoMakefile.am | 2 +- config/lustre-build-linux.m4 | 19 ++++++++++++------- ldiskfs/config/ldiskfs-build.m4 | 20 +++++++++++++------- lustre/scripts/version_tag.pl | 4 +++- 4 files changed, 29 insertions(+), 16 deletions(-) diff --git a/autoMakefile.am b/autoMakefile.am index 9b6dcfd..71d8db4 100644 --- a/autoMakefile.am +++ b/autoMakefile.am @@ -84,7 +84,7 @@ all-am: modules 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) -include $(CONFIG_INCLUDE)' \ + 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)' \ $(MODULE_TARGET)=$(PWD) -o tmp_include_depends -o scripts -o \ include/config/MARKER $@ endif # LINUX diff --git a/config/lustre-build-linux.m4 b/config/lustre-build-linux.m4 index 95d20e23..e2bbfeb 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) @@ -96,7 +96,7 @@ AC_SUBST(RELEASE) # check is redhat/suse kernels AC_MSG_CHECKING([that RedHat kernel]) LB_LINUX_TRY_COMPILE([ - #include + #include <$VERSION_HDIR/version.h> ],[ #ifndef RHEL_RELEASE_CODE #error "not redhat kernel" @@ -222,8 +222,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 +244,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 +356,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]) diff --git a/ldiskfs/config/ldiskfs-build.m4 b/ldiskfs/config/ldiskfs-build.m4 index 38fce59..8a00872 100644 --- a/ldiskfs/config/ldiskfs-build.m4 +++ b/ldiskfs/config/ldiskfs-build.m4 @@ -1,9 +1,9 @@ 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=${utsrelease1} ], [test -r ${utsrelease2} && fgrep -q UTS_RELEASE ${utsrelease2}], [ @@ -60,10 +60,10 @@ AC_SUBST(RELEASE) # check is redhat/suse kernels AC_MSG_CHECKING([for RedHat kernel version]) - AS_IF([fgrep -q RHEL_RELEASE ${LINUX_OBJ}/include/linux/version.h], [ + AS_IF([fgrep -q RHEL_RELEASE ${LINUX_OBJ}/include/$VERSION_HDIR/version.h], [ RHEL_KERNEL="yes" RHEL_RELEASE=$(expr 0$(awk -F \" '/ RHEL_RELEASE / { print [$]2 }' \ - ${LINUX_OBJ}/include/linux/version.h) + 1) + ${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) @@ -184,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 @@ -202,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 diff --git a/lustre/scripts/version_tag.pl b/lustre/scripts/version_tag.pl index 61796c9..4d2bb4a 100644 --- a/lustre/scripts/version_tag.pl +++ b/lustre/scripts/version_tag.pl @@ -43,8 +43,10 @@ sub get_kernver($$) my $objdir = shift; my $ver = new IO::File; - if (!$ver->open("$objdir/include/linux/utsrelease.h") && + if (!$ver->open("$objdir/include/generated/utsrelease.h") && + !$ver->open("$objdir/include/linux/utsrelease.h") && !$ver->open("$objdir/include/linux/version.h") && + !$ver->open("$dir/include/generated/utsrelease.h") && !$ver->open("$dir/include/linux/utsrelease.h") && !$ver->open("$dir/include/linux/version.h")) { die "Run make dep on '$dir'\n"; -- 1.8.3.1