Linux: Restructure kernel header detection
[openafs.git] / acinclude.m4
index a3362f0..dc68e89 100644 (file)
@@ -309,16 +309,20 @@ case $system in
                 if test "x$with_linux_kernel_headers" != "x"; then
                   LINUX_KERNEL_PATH="$with_linux_kernel_headers"
                 else
-                  LINUX_KERNEL_PATH="/lib/modules/`uname -r`/source"
-                  if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
-                    LINUX_KERNEL_PATH="/lib/modules/`uname -r`/build"
-                  fi
-                  if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
-                    LINUX_KERNEL_PATH="/usr/src/linux-2.4"
-                  fi
-                  if test ! -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
-                    LINUX_KERNEL_PATH="/usr/src/linux"
-                  fi
+                  for utsdir in "/lib/modules/`uname -r`/build" \
+                                "/lib/modules/`uname -r`/source" \
+                                "/usr/src/linux-2.4" \
+                                "/usr/src/linux"; do
+                    LINUX_KERNEL_PATH="$utsdir"
+                    for utsfile in "include/generated/utsrelease.h" \
+                                   "include/linux/utsrelease.h" \
+                                   "include/linux/version.h" \
+                                   "include/linux/version-up.h"; do
+                      if grep "UTS_RELEASE" "$utsdir/$utsfile" >/dev/null 2>&1; then
+                        break 2
+                      fi
+                    done
+                  done
                 fi
                 if test "x$with_linux_kernel_build" != "x"; then
                         LINUX_KERNEL_BUILD="$with_linux_kernel_build"
@@ -824,6 +828,8 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
                 AC_CHECK_LINUX_STRUCT([file_operations], [flock], [fs.h])
                 AC_CHECK_LINUX_STRUCT([file_operations], [sendfile], [fs.h])
                 AC_CHECK_LINUX_STRUCT([file_system_type], [mount], [fs.h])
+                AC_CHECK_LINUX_STRUCT([filename], [name], [fs.h])
+                AC_CHECK_LINUX_STRUCT([key_type], [preparse], [key-type.h])
                 AC_CHECK_LINUX_STRUCT([nameidata], [path], [namei.h])
                 AC_CHECK_LINUX_STRUCT([proc_dir_entry], [owner], [proc_fs.h])
                 AC_CHECK_LINUX_STRUCT([super_block], [s_bdi], [fs.h])
@@ -913,10 +919,6 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
                                     [#include <linux/fs.h>
                                      #include <linux/namei.h>],
                                     [path_lookup(NULL, 0, NULL);])
-                AC_CHECK_LINUX_FUNC([putname],
-                                    [#include <linux/fs.h>
-                                     #include <linux/namei.h>],
-                                    [putname(NULL);])
                 AC_CHECK_LINUX_FUNC([rcu_read_lock],
                                     [#include <linux/rcupdate.h>],
                                     [rcu_read_lock();])
@@ -1463,6 +1465,7 @@ AC_CHECK_FUNCS([ \
        getrlimit \
        issetugid \
        mkstemp \
+       poll \
        pread \
        preadv \
        preadv64 \