From d4326403de5f1fe9634c3d9468a51076eff702b6 Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Mon, 9 Mar 2009 16:50:37 -0700 Subject: [PATCH] Build System Default Kernel Update the method used for determining which kernel to build against when not specified. Previous 'uname -r' was used but this makes the assumption that the running kernel is the one you want to use, this is often not the case. It is better to examine the usual kernel-devel install locations and select one of the installed kernels. --- config/spl-build.m4 | 23 +++++++---------------- configure | 23 +++++++---------------- 2 files changed, 14 insertions(+), 32 deletions(-) diff --git a/config/spl-build.m4 b/config/spl-build.m4 index b6e44a7f2a..f2dc7fa9ec 100644 --- a/config/spl-build.m4 +++ b/config/spl-build.m4 @@ -1,6 +1,4 @@ AC_DEFUN([SPL_AC_KERNEL], [ - ver=`uname -r` - AC_ARG_WITH([linux], AS_HELP_STRING([--with-linux=PATH], [Path to kernel source]), @@ -14,19 +12,12 @@ AC_DEFUN([SPL_AC_KERNEL], [ AC_MSG_CHECKING([kernel source directory]) if test -z "$kernelsrc"; then kernelbuild= - sourcelink=/lib/modules/${ver}/source - buildlink=/lib/modules/${ver}/build + sourcelink=`ls -1d /usr/src/kernels/* /usr/src/linux-* 2>/dev/null | tail -1` - if test -e $sourcelink; then - kernelsrc=`(cd $sourcelink; /bin/pwd)` - fi - if test -e $buildlink; then - kernelbuild=`(cd $buildlink; /bin/pwd)` - fi - if test -z "$kernelsrc"; then - kernelsrc=$kernelbuild - fi - if test -z "$kernelsrc" -o -z "$kernelbuild"; then + if test -e ${sourcelink}; then + kernelsrc=`readlink -f ${sourcelink}` + kernelbuild=${kernelsrc} + else AC_MSG_RESULT([Not found]) AC_MSG_ERROR([ *** Please specify the location of the kernel source @@ -48,7 +39,7 @@ AC_DEFUN([SPL_AC_KERNEL], [ kernsrcver=`(echo "#include "; echo "kernsrcver=UTS_RELEASE") | - cpp -I $kernelbuild/include | + cpp -I $kernelbuild/include | grep "^kernsrcver=" | cut -d \" -f 2` elif test -r $kernelbuild/include/linux/utsrelease.h && @@ -56,7 +47,7 @@ AC_DEFUN([SPL_AC_KERNEL], [ kernsrcver=`(echo "#include "; echo "kernsrcver=UTS_RELEASE") | - cpp -I $kernelbuild/include | + cpp -I $kernelbuild/include | grep "^kernsrcver=" | cut -d \" -f 2` fi diff --git a/configure b/configure index 8f5ec50c4b..0c4a90cc62 100755 --- a/configure +++ b/configure @@ -18921,8 +18921,6 @@ LINUX= LINUX_OBJ= - ver=`uname -r` - # Check whether --with-linux or --without-linux was given. if test "${with_linux+set}" = set; then @@ -18941,19 +18939,12 @@ fi; echo $ECHO_N "checking kernel source directory... $ECHO_C" >&6 if test -z "$kernelsrc"; then kernelbuild= - sourcelink=/lib/modules/${ver}/source - buildlink=/lib/modules/${ver}/build + sourcelink=`ls -1d /usr/src/kernels/* /usr/src/linux-* 2>/dev/null | tail -1` - if test -e $sourcelink; then - kernelsrc=`(cd $sourcelink; /bin/pwd)` - fi - if test -e $buildlink; then - kernelbuild=`(cd $buildlink; /bin/pwd)` - fi - if test -z "$kernelsrc"; then - kernelsrc=$kernelbuild - fi - if test -z "$kernelsrc" -o -z "$kernelbuild"; then + if test -e ${sourcelink}; then + kernelsrc=`readlink -f ${sourcelink}` + kernelbuild=${kernelsrc} + else echo "$as_me:$LINENO: result: Not found" >&5 echo "${ECHO_T}Not found" >&6 { { echo "$as_me:$LINENO: error: @@ -18984,7 +18975,7 @@ echo $ECHO_N "checking kernel source version... $ECHO_C" >&6 kernsrcver=`(echo "#include "; echo "kernsrcver=UTS_RELEASE") | - cpp -I $kernelbuild/include | + cpp -I $kernelbuild/include | grep "^kernsrcver=" | cut -d \" -f 2` elif test -r $kernelbuild/include/linux/utsrelease.h && @@ -18992,7 +18983,7 @@ echo $ECHO_N "checking kernel source version... $ECHO_C" >&6 kernsrcver=`(echo "#include "; echo "kernsrcver=UTS_RELEASE") | - cpp -I $kernelbuild/include | + cpp -I $kernelbuild/include | grep "^kernsrcver=" | cut -d \" -f 2` fi