autoconf: add test for typedef'd structs
[openafs.git] / src / cf / linux-test1.m4
index fb5e061..106c5b5 100644 (file)
@@ -64,7 +64,7 @@ AC_DEFUN([AC_TRY_KBUILD], [
   fi])
 
 AC_DEFUN([LINUX_KERNEL_COMPILE_WORKS], [
-  AC_MSG_CHECKING([for linux kernel module build works])
+  AC_MSG_CHECKING([if linux kernel module build works])
   AC_TRY_KBUILD(
 [#include <linux/sched.h>
 #include <linux/fs.h>],
@@ -85,13 +85,16 @@ AC_DEFUN([LINUX_KBUILD_USES_EXTRA_CFLAGS], [
     CPPFLAGS="$save_CPPFLAGS"
     AC_MSG_RESULT($ac_linux_kbuild_requires_extra_cflags)])
 
-dnl AC_CHECK_LINUX_BUILD([msg], [var], [includes], [code], [define])
+dnl AC_CHECK_LINUX_BUILD([msg], [var], [includes], [code], [define], [CFLAGS])
 AC_DEFUN([AC_CHECK_LINUX_BUILD],
  [AS_VAR_PUSHDEF([ac_linux_build], [$2])dnl
   AC_CACHE_CHECK([$1], [ac_linux_build],
-   [AC_TRY_KBUILD([$3], [$4],
+   [save_CPPFLAGS="$CPPFLAGS"
+     CPPFLAGS="$CPPFLAGS $7"
+     AC_TRY_KBUILD([$3], [$4],
                  AS_VAR_SET([ac_linux_build], [yes]),
                  AS_VAR_SET([ac_linux_build], [no]))
+     CPPFLAGS="$save_CPPFLAGS"
    ])
   AS_IF([test AS_VAR_GET([ac_linux_build]) = yes],
         [AC_DEFINE([$5],1,[$6])])
@@ -124,11 +127,16 @@ AC_DEFUN([AC_CHECK_LINUX_FUNC],
 
 dnl AC_CHECK_LINUX_STRUCT([structure], [element], [includes])
 AC_DEFUN([AC_CHECK_LINUX_STRUCT],
- [AC_CHECK_LINUX_BUILD([for $2 in struct $1],
-                      [ac_cv_linux_struct_$1_has_$2],
+ [AC_CHECK_LINUX_TYPED_STRUCT([struct $1], [$2], [$3])
+ ])
+
+dnl AC_CHECK_LINUX_TYPED_STRUCT([structure], [element], [includes])
+AC_DEFUN([AC_CHECK_LINUX_TYPED_STRUCT],
+ [AC_CHECK_LINUX_BUILD([for $2 in $1],
+                      [ac_cv_linux_$1_has_$2],
                       [#include <linux/$3>],
-                      [struct $1 _test; printk("%x\n", &_test.$2); ],
-                      AS_TR_CPP(STRUCT_$1_HAS_$2),
-                      [Define if kernel struct $1 has the $2 element])
+                      [$1 _test; printk("%x\n", &_test.$2); ],
+                      AS_TR_CPP($1_HAS_$2),
+                      [Define if kernel typedef'd $1 has the $2 element])
  ])