[Ocfs2-commits] manish commits r2106 - in trunk: . kapi-compat/include

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Mon Apr 4 02:41:42 CDT 2005


Author: manish
Signed-off-by: mfasheh
Date: 2005-04-04 02:41:40 -0500 (Mon, 04 Apr 2005)
New Revision: 2106

Added:
   trunk/kfeature.m4
Modified:
   trunk/Config.make.in
   trunk/aclocal.m4
   trunk/configure.in
   trunk/kapi-compat/include/assert_spin_locked.h
Log:
autoconf macroize the kernel feature tests, deletes a lot of duplicated shell
code. Also remove the iocb dtor in union test, since it's no longer needed.

Signed-off-by: mfasheh


Modified: trunk/Config.make.in
===================================================================
--- trunk/Config.make.in	2005-04-04 07:17:20 UTC (rev 2105)
+++ trunk/Config.make.in	2005-04-04 07:41:40 UTC (rev 2106)
@@ -63,7 +63,6 @@
 
 MISSING_SOCK_CREATE_LITE = @MISSING_SOCK_CREATE_LITE@
 JOURNAL_ACCESS_WITH_CREDITS = @JOURNAL_ACCESS_WITH_CREDITS@
-KIOCB_DTOR_IN_PRIVATE = @KIOCB_DTOR_IN_PRIVATE@
 BACKING_DEV_CAPABILITIES = @BACKING_DEV_CAPABILITIES@
 
 COMPAT_SAFE_WRITE = @COMPAT_SAFE_WRITE@

Modified: trunk/aclocal.m4
===================================================================
--- trunk/aclocal.m4	2005-04-04 07:17:20 UTC (rev 2105)
+++ trunk/aclocal.m4	2005-04-04 07:41:40 UTC (rev 2106)
@@ -1 +1,2 @@
 m4_include([kver.m4])
+m4_include([kfeature.m4])

Modified: trunk/configure.in
===================================================================
--- trunk/configure.in	2005-04-04 07:17:20 UTC (rev 2105)
+++ trunk/configure.in	2005-04-04 07:41:40 UTC (rev 2106)
@@ -232,23 +232,22 @@
 AC_SUBST(KERNELVER)
 
 COMPAT_SAFE_WRITE=
-AC_MSG_CHECKING([for safe write ordering])
-if test "x$KERNEL_26" = "xyes"; then
-  have_safe_write=yes
-elif egrep "EXPORT_SYMBOL.*\(generic_file_write_nolock\);" "$KERNELSRC/kernel/ksyms.c" >/dev/null 2>&1; then
-  have_safe_write=yes
-elif egrep "EXPORT_SYMBOL.*\(do_generic_file_write\);" "$KERNELSRC/kernel/ksyms.c" >/dev/null 2>&1; then
-  have_safe_write=yes
-  COMPAT_SAFE_WRITE=yes
-else
-  have_safe_write=no
-fi
-AC_MSG_RESULT($have_safe_write)
+if test "x$KERNEL_26" != "xyes"; then
+  AC_MSG_CHECKING([for safe write ordering])
+  if egrep "EXPORT_SYMBOL.*\(generic_file_write_nolock\);" "$KERNELSRC/kernel/ksyms.c" >/dev/null 2>&1; then
+    have_safe_write=yes
+  elif egrep "EXPORT_SYMBOL.*\(do_generic_file_write\);" "$KERNELSRC/kernel/ksyms.c" >/dev/null 2>&1; then
+    have_safe_write=yes
+    COMPAT_SAFE_WRITE=yes
+  else
+    have_safe_write=no
+  fi
+  AC_MSG_RESULT($have_safe_write)
 
-if test "$have_safe_write" = "no"; then
-  AC_MSG_ERROR([Can't guarantee safe writes, please try a 2.6.x kernel])
+  if test "$have_safe_write" = "no"; then
+    AC_MSG_ERROR([Can't guarantee safe writes, please try a 2.6.x kernel])
+  fi
 fi
-
 AC_SUBST(COMPAT_SAFE_WRITE)
 
 MODVERSIONS=
@@ -268,10 +267,9 @@
 fi
 AC_SUBST(MODVERSIONS)
 
-AC_MSG_CHECKING([for NPTL support])
-if test "x$KERNEL_26" = "xyes"; then
-  have_NPTL=yes
-else
+if test "x$KERNEL_26" != "xyes"; then
+  AC_MSG_CHECKING([for NPTL support])
+
   saved_CPPFLAGS="$CPPFLAGS"
   CPPFLAGS="-I$KERNELINC $saved_CPPFLAGS"
 
@@ -282,109 +280,46 @@
 [recalc_sigpending ();], have_NPTL=yes, have_NPTL=no)
 
   CPPFLAGS="$saved_CPPFLAGS"
-fi
-AC_MSG_RESULT($have_NPTL)
 
-if test "x$have_NPTL" = "xno"; then
-  AC_MSG_ERROR([No NPTL support, please try a 2.6.x kernel])
+  AC_MSG_RESULT($have_NPTL)
+
+  if test "x$have_NPTL" = "xno"; then
+    AC_MSG_ERROR([No NPTL support, please try a 2.6.x kernel])
+  fi
 fi
 
 MISSING_SOCK_CREATE_LITE=
-AC_MSG_CHECKING([for sock_create_lite])
-if grep "\<sock_create_lite(" "$KERNELINC/linux/net.h" >/dev/null 2>&1 ; then
-  AC_MSG_RESULT(yes)
-else
-  MISSING_SOCK_CREATE_LITE=yes
-  AC_MSG_RESULT(no)
-fi
+OCFS2_CHECK_KERNEL(sock_create_lite, net.h,, MISSING_SOCK_CREATE_LITE=yes)
 AC_SUBST(MISSING_SOCK_CREATE_LITE)
 
-AC_MSG_CHECKING([for msecs_to_jiffies])
-if grep "\<msecs_to_jiffies(" "$KERNELINC/linux/jiffies.h" "$KERNELINC/linux/time.h" >/dev/null 2>&1 ; then
-  AC_MSG_RESULT(yes)
-else
-  KAPI_COMPAT_HEADERS="$KAPI_COMPAT_HEADERS msecs_to_jiffies.h"
-  AC_MSG_RESULT(no)
-fi
+OCFS2_KERNEL_COMPAT(msecs_to_jiffies, [jiffies.h time.h])
+OCFS2_KERNEL_COMPAT(wait_event_timeout, wait.h)
+OCFS2_KERNEL_COMPAT(wait_event_interruptible_timeout, wait.h)
+OCFS2_KERNEL_COMPAT(kcalloc, slab.h)
+OCFS2_KERNEL_COMPAT(assert_spin_locked, spinlock.h)
 
-AC_MSG_CHECKING([for wait_event_timeout])
-if grep "\<wait_event_timeout(" "$KERNELINC/linux/wait.h" >/dev/null 2>&1 ; then
-  AC_MSG_RESULT(yes)
-else
-  KAPI_COMPAT_HEADERS="$KAPI_COMPAT_HEADERS wait_event_timeout.h"
-  AC_MSG_RESULT(no)
-fi
-
-AC_MSG_CHECKING([for wait_event_interruptible_timeout])
-if grep "\<wait_event_interruptible_timeout(" "$KERNELINC/linux/wait.h" >/dev/null 2>&1 ; then
-  AC_MSG_RESULT(yes)
-else
-  KAPI_COMPAT_HEADERS="$KAPI_COMPAT_HEADERS wait_event_interruptible_timeout.h"
-  AC_MSG_RESULT(no)
-fi
-
-AC_MSG_CHECKING([for kcalloc])
-if grep "\<kcalloc(" "$KERNELINC/linux/slab.h" >/dev/null 2>&1 ; then
-  AC_MSG_RESULT(yes)
-else
-  KAPI_COMPAT_HEADERS="$KAPI_COMPAT_HEADERS kcalloc.h"
-  AC_MSG_RESULT(no)
-fi
-
 #this check will break for 2.4 kernels...
-AC_MSG_CHECKING([for kref_init with release callback])
-if grep "kref_init.*release" "$KERNELINC/linux/kref.h" >/dev/null 2>&1 ; then
-  KAPI_COMPAT_HEADERS="$KAPI_COMPAT_HEADERS kref_put.h"
-  AC_MSG_RESULT(yes)
-else
-  KAPI_COMPAT_HEADERS="$KAPI_COMPAT_HEADERS kref_init.h"
-  AC_MSG_RESULT(no)
-fi
+OCFS2_CHECK_KERNEL([kref_init with release callback], kref.h,
+  kref_compat_header="kref_put.h", kref_compat_header="kref_init.h",
+  [kref_init.*release])
+KAPI_COMPAT_HEADERS="$KAPI_COMPAT_HEADERS $kref_compat_header"
 
-AC_MSG_CHECKING([for assert_spin_locked])
-if grep "\<assert_spin_locked(" "$KERNELINC/linux/spinlock.h" >/dev/null 2>&1 ; then
-  AC_MSG_RESULT(yes)
-else
-  KAPI_COMPAT_HEADERS="$KAPI_COMPAT_HEADERS assert_spin_locked.h"
-  AC_MSG_RESULT(no)
-fi
-
-AC_MSG_CHECKING([for journal access functions with a credits pointer])
-KAPI_COMPAT_HEADERS="$KAPI_COMPAT_HEADERS journal_access.h"
-  JOURNAL_ACCESS_WITH_CREDITS=
-if grep "\<int \*credits);" "$KERNELINC/linux/jbd.h" >/dev/null 2>&1 ; then
-  AC_MSG_RESULT(yes)
-  JOURNAL_ACCESS_WITH_CREDITS=yes
-else
-  AC_MSG_RESULT(no)
-fi
+JOURNAL_ACCESS_WITH_CREDITS=
+OCFS2_CHECK_KERNEL([journal access functions with a credits pointer], jbd.h,
+  JOURNAL_ACCESS_WITH_CREDITS=yes, , [\<int \*credits);])
 AC_SUBST(JOURNAL_ACCESS_WITH_CREDITS)
+KAPI_COMPAT_HEADERS="$KAPI_COMPAT_HEADERS journal_access.h"
 
-KIOCB_DTOR_IN_PRIVATE=
-AC_MSG_CHECKING([for iocb dtor in union])
-if grep "\<DTOR_IN_PRIVATE\>" "$KERNELINC/linux/aio.h" >/dev/null 2>&1 ; then
-  AC_MSG_RESULT(yes)
-  KIOCB_DTOR_IN_PRIVATE=yes
-else
-  AC_MSG_RESULT(no)
-fi
-AC_SUBST(KIOCB_DTOR_IN_PRIVATE)
-
 BACKING_DEV_CAPABILITIES=
-AC_MSG_CHECKING([for cababilities mask in backing_dev_info])
-if grep "\<BDI_CAP_NO_WRITEBACK\>" "$KERNELINC/linux/backing-dev.h" >/dev/null 2>&1 ; then
-  AC_MSG_RESULT(yes)
-  BACKING_DEV_CAPABILITIES=yes
-else
-  AC_MSG_RESULT(no)
-fi
+OCFS2_CHECK_KERNEL([for cababilities mask in backing_dev_info], backing-dev.h,
+  BACKING_DEV_CAPABILITIES=yes, , [\<BDI_CAP_NO_WRITEBACK\>])
 AC_SUBST(BACKING_DEV_CAPABILITIES)
 
 # using -include has two advantages:
 #  the source doesn't need to know to include compat headers
 #  the compat header file names don't go through the search path
 for h in $KAPI_COMPAT_HEADERS; do
-	KAPI_COMPAT_CFLAGS="$KAPI_COMPAT_CFLAGS -include \$(OUR_TOPDIR)/kapi-compat/include/$h"
+  KAPI_COMPAT_CFLAGS="$KAPI_COMPAT_CFLAGS -include \$(OUR_TOPDIR)/kapi-compat/include/$h"
 done
 AC_SUBST(KAPI_COMPAT_CFLAGS)
 

Modified: trunk/kapi-compat/include/assert_spin_locked.h
===================================================================
--- trunk/kapi-compat/include/assert_spin_locked.h	2005-04-04 07:17:20 UTC (rev 2105)
+++ trunk/kapi-compat/include/assert_spin_locked.h	2005-04-04 07:41:40 UTC (rev 2106)
@@ -9,6 +9,7 @@
  * that expose this api.  (kernel namespace inconsistency 1, universe 0)
  */
 
+#include <linux/types.h>
 #include <linux/jbd.h>
 #ifndef assert_spin_locked
 #define assert_spin_locked(lock)	do { (void)(lock); } while(0)

Added: trunk/kfeature.m4
===================================================================
--- trunk/kfeature.m4	2005-04-04 07:17:20 UTC (rev 2105)
+++ trunk/kfeature.m4	2005-04-04 07:41:40 UTC (rev 2106)
@@ -0,0 +1,21 @@
+AC_DEFUN([OCFS2_CHECK_KERNEL],
+  [AC_MSG_CHECKING([for $1])
+   kernel_check_regexp="m4_default([$5], [\<$1(])"
+
+   kernel_check_headers=
+   for kfile in $2; do
+     kernel_check_headers="$kernel_check_headers $KERNELINC/linux/$kfile"
+   done
+
+   if grep "$kernel_check_regexp" $kernel_check_headers >/dev/null 2>&1 ; then
+     m4_default([$3], :)
+     AC_MSG_RESULT(yes)
+   else
+     m4_default([$4], :)
+     AC_MSG_RESULT(no)
+   fi
+])# OCFS2_CHECK_KERNEL
+
+AC_DEFUN([OCFS2_KERNEL_COMPAT],
+  [OCFS2_CHECK_KERNEL($1, $2, , 
+     [KAPI_COMPAT_HEADERS="$KAPI_COMPAT_HEADERS $1.h"])])



More information about the Ocfs2-commits mailing list