]> granicus.if.org Git - zfs/commitdiff
Linux-2.6.33 compat, check <generated/utsrelease.h> for UTS_RELEASE
authorBrian Behlendorf <behlendorf1@llnl.gov>
Wed, 30 Jun 2010 16:47:57 +0000 (09:47 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Wed, 30 Jun 2010 19:48:18 +0000 (12:48 -0700)
It seems the upstream community moved the definition of UTS_RELEASE
yet again as of linux-2.6.33.  Update the build system to check in
all three possible locations where your kernel version may be defined.

$kernelbuild/include/linux/version.h
$kernelbuild/include/linux/utsrelease.h
$kernelbuild/include/generated/utsrelease.h

config/spl-build.m4
configure

index 6f312e25a7a34de7596adfb7548530a3003274bf..c6f47b68ffd49bb4cb3628c4c6b8578308a76d27 100644 (file)
@@ -146,28 +146,30 @@ AC_DEFUN([SPL_AC_KERNEL], [
        AC_MSG_RESULT([$kernelbuild])
 
        AC_MSG_CHECKING([kernel source version])
-       if test -r $kernelbuild/include/linux/version.h && 
-               fgrep -q UTS_RELEASE $kernelbuild/include/linux/version.h; then
-
-               kernsrcver=`(echo "#include <linux/version.h>"; 
-                            echo "kernsrcver=UTS_RELEASE") | 
-                            cpp -I $kernelbuild/include |
-                            grep "^kernsrcver=" | cut -d \" -f 2`
-
-       elif test -r $kernelbuild/include/linux/utsrelease.h && 
-               fgrep -q UTS_RELEASE $kernelbuild/include/linux/utsrelease.h; then
+       utsrelease1=$kernelbuild/include/linux/version.h
+       utsrelease2=$kernelbuild/include/linux/utsrelease.h
+       utsrelease3=$kernelbuild/include/generated/utsrelease.h
+       if test -r $utsrelease1 && fgrep -q UTS_RELEASE $utsrelease1; then
+               utsrelease=linux/version.h
+       elif test -r $utsrelease2 && fgrep -q UTS_RELEASE $utsrelease2; then
+               utsrelease=linux/utsrelease.h
+       elif test -r $utsrelease3 && fgrep -q UTS_RELEASE $utsrelease3; then
+               utsrelease=generated/utsrelease.h
+       fi
 
-               kernsrcver=`(echo "#include <linux/utsrelease.h>"; 
+       if test "$utsrelease"; then
+               kernsrcver=`(echo "#include <$utsrelease>";
                             echo "kernsrcver=UTS_RELEASE") | 
                             cpp -I $kernelbuild/include |
                             grep "^kernsrcver=" | cut -d \" -f 2`
-       fi
 
-       if test -z "$kernsrcver"; then
+               if test -z "$kernsrcver"; then
+                       AC_MSG_RESULT([Not found])
+                       AC_MSG_ERROR([*** Cannot determine kernel version.])
+               fi
+       else
                AC_MSG_RESULT([Not found])
-               AC_MSG_ERROR([
-               *** Cannot determine the version of the linux kernel source.
-               *** Please prepare the kernel before running this script])
+               AC_MSG_ERROR([*** Cannot find UTS_RELEASE definition.])
        fi
 
        AC_MSG_RESULT([$kernsrcver])
index cd227c18abe5cd78749ee8c3e1071af707c26b4d..47611aeece91d8f566a5d2e47302c9ca47e5bf70 100755 (executable)
--- a/configure
+++ b/configure
@@ -11542,32 +11542,35 @@ $as_echo "$kernelbuild" >&6; }
 
        { $as_echo "$as_me:$LINENO: checking kernel source version" >&5
 $as_echo_n "checking kernel source version... " >&6; }
-       if test -r $kernelbuild/include/linux/version.h &&
-               fgrep -q UTS_RELEASE $kernelbuild/include/linux/version.h; then
-
-               kernsrcver=`(echo "#include <linux/version.h>";
-                            echo "kernsrcver=UTS_RELEASE") |
-                            cpp -I $kernelbuild/include |
-                            grep "^kernsrcver=" | cut -d \" -f 2`
-
-       elif test -r $kernelbuild/include/linux/utsrelease.h &&
-               fgrep -q UTS_RELEASE $kernelbuild/include/linux/utsrelease.h; then
+       utsrelease1=$kernelbuild/include/linux/version.h
+       utsrelease2=$kernelbuild/include/linux/utsrelease.h
+       utsrelease3=$kernelbuild/include/generated/utsrelease.h
+       if test -r $utsrelease1 && fgrep -q UTS_RELEASE $utsrelease1; then
+               utsrelease=linux/version.h
+       elif test -r $utsrelease2 && fgrep -q UTS_RELEASE $utsrelease2; then
+               utsrelease=linux/utsrelease.h
+       elif test -r $utsrelease3 && fgrep -q UTS_RELEASE $utsrelease3; then
+               utsrelease=generated/utsrelease.h
+       fi
 
-               kernsrcver=`(echo "#include <linux/utsrelease.h>";
+       if test "$utsrelease"; then
+               kernsrcver=`(echo "#include <$utsrelease>";
                             echo "kernsrcver=UTS_RELEASE") |
                             cpp -I $kernelbuild/include |
                             grep "^kernsrcver=" | cut -d \" -f 2`
-       fi
 
-       if test -z "$kernsrcver"; then
+               if test -z "$kernsrcver"; then
+                       { $as_echo "$as_me:$LINENO: result: Not found" >&5
+$as_echo "Not found" >&6; }
+                       { { $as_echo "$as_me:$LINENO: error: *** Cannot determine kernel version." >&5
+$as_echo "$as_me: error: *** Cannot determine kernel version." >&2;}
+   { (exit 1); exit 1; }; }
+               fi
+       else
                { $as_echo "$as_me:$LINENO: result: Not found" >&5
 $as_echo "Not found" >&6; }
-               { { $as_echo "$as_me:$LINENO: error:
-               *** Cannot determine the version of the linux kernel source.
-               *** Please prepare the kernel before running this script" >&5
-$as_echo "$as_me: error:
-               *** Cannot determine the version of the linux kernel source.
-               *** Please prepare the kernel before running this script" >&2;}
+               { { $as_echo "$as_me:$LINENO: error: *** Cannot find UTS_RELEASE definition." >&5
+$as_echo "$as_me: error: *** Cannot find UTS_RELEASE definition." >&2;}
    { (exit 1); exit 1; }; }
        fi
 
@@ -14936,32 +14939,35 @@ $as_echo "$kernelbuild" >&6; }
 
        { $as_echo "$as_me:$LINENO: checking kernel source version" >&5
 $as_echo_n "checking kernel source version... " >&6; }
-       if test -r $kernelbuild/include/linux/version.h &&
-               fgrep -q UTS_RELEASE $kernelbuild/include/linux/version.h; then
-
-               kernsrcver=`(echo "#include <linux/version.h>";
-                            echo "kernsrcver=UTS_RELEASE") |
-                            cpp -I $kernelbuild/include |
-                            grep "^kernsrcver=" | cut -d \" -f 2`
-
-       elif test -r $kernelbuild/include/linux/utsrelease.h &&
-               fgrep -q UTS_RELEASE $kernelbuild/include/linux/utsrelease.h; then
+       utsrelease1=$kernelbuild/include/linux/version.h
+       utsrelease2=$kernelbuild/include/linux/utsrelease.h
+       utsrelease3=$kernelbuild/include/generated/utsrelease.h
+       if test -r $utsrelease1 && fgrep -q UTS_RELEASE $utsrelease1; then
+               utsrelease=linux/version.h
+       elif test -r $utsrelease2 && fgrep -q UTS_RELEASE $utsrelease2; then
+               utsrelease=linux/utsrelease.h
+       elif test -r $utsrelease3 && fgrep -q UTS_RELEASE $utsrelease3; then
+               utsrelease=generated/utsrelease.h
+       fi
 
-               kernsrcver=`(echo "#include <linux/utsrelease.h>";
+       if test "$utsrelease"; then
+               kernsrcver=`(echo "#include <$utsrelease>";
                             echo "kernsrcver=UTS_RELEASE") |
                             cpp -I $kernelbuild/include |
                             grep "^kernsrcver=" | cut -d \" -f 2`
-       fi
 
-       if test -z "$kernsrcver"; then
+               if test -z "$kernsrcver"; then
+                       { $as_echo "$as_me:$LINENO: result: Not found" >&5
+$as_echo "Not found" >&6; }
+                       { { $as_echo "$as_me:$LINENO: error: *** Cannot determine kernel version." >&5
+$as_echo "$as_me: error: *** Cannot determine kernel version." >&2;}
+   { (exit 1); exit 1; }; }
+               fi
+       else
                { $as_echo "$as_me:$LINENO: result: Not found" >&5
 $as_echo "Not found" >&6; }
-               { { $as_echo "$as_me:$LINENO: error:
-               *** Cannot determine the version of the linux kernel source.
-               *** Please prepare the kernel before running this script" >&5
-$as_echo "$as_me: error:
-               *** Cannot determine the version of the linux kernel source.
-               *** Please prepare the kernel before running this script" >&2;}
+               { { $as_echo "$as_me:$LINENO: error: *** Cannot find UTS_RELEASE definition." >&5
+$as_echo "$as_me: error: *** Cannot find UTS_RELEASE definition." >&2;}
    { (exit 1); exit 1; }; }
        fi