[Ocfs2-commits] manish commits r1965 - trunk
svn-commits at oss.oracle.com
svn-commits at oss.oracle.com
Tue Mar 8 18:46:56 CST 2005
Author: manish
Signed-off-by: jlbec
Date: 2005-03-08 18:46:54 -0600 (Tue, 08 Mar 2005)
New Revision: 1965
Added:
trunk/aclocal.m4
trunk/kver.m4
Modified:
trunk/configure.in
Log:
* Try to guess where SuSE kernel sources live better.
* Sanity check that the kernel versions of the kernel build tree and the source
tree match. Also, do the version check solely using the C preprocessor,
instead of doing a runtime check. We should be cross compile safe now.
* Only run tests that are only relevant for 2.4 when we're actually building
against a 2.4 kernel.
* Remove unused KERNEL_CFLAGS variable.
Signed-off-by: jlbec
Added: trunk/aclocal.m4
===================================================================
--- trunk/aclocal.m4 2005-03-09 00:39:00 UTC (rev 1964)
+++ trunk/aclocal.m4 2005-03-09 00:46:54 UTC (rev 1965)
@@ -0,0 +1 @@
+m4_include([kver.m4])
Modified: trunk/configure.in
===================================================================
--- trunk/configure.in 2005-03-09 00:39:00 UTC (rev 1964)
+++ trunk/configure.in 2005-03-09 00:46:54 UTC (rev 1965)
@@ -1,3 +1,5 @@
+AC_PREREQ(2.55)
+
AC_INIT(fs/Makefile)
PACKAGE=ocfs2
@@ -77,16 +79,11 @@
fi
OCFS_PROCESSOR="$USERARCH"
-KERNEL_CFLAGS=
case "$USERARCH" in
ppc)
OCFS_PROCESSOR="ppc64"
- KERNEL_CFLAGS="-m64"
;;
- x86_64)
- KERNEL_CFLAGS="-m64"
- ;;
i386)
OCFS_PROCESSOR="i686"
;;
@@ -158,11 +155,17 @@
KERNELDIR=$kerneldir
AC_SUBST(KERNELDIR)
+KBUILDINC="$KERNELDIR/include"
+OCFS2_CHECK_KVER($KBUILDINC, kversion)
+
AC_MSG_CHECKING(for directory with kernel sources)
AC_ARG_WITH(kernel-source, [ --with-kernel-source=dir Path to the kernel source [[autodetect]]], kernelsourcedir="$withval", [
ksrc="$kernelroot/source"
+ knoobjsrc=`echo $kerneldir | sed 's/-obj.*//'`
if test -f "$kerneldir/include/linux/fs.h"; then
kernelsourcedir="$kerneldir"
+ elif test -f "$knoobjsrc/include/linux/fs.h"; then
+ kernelsourcedir="$knoobjsrc"
elif test -d "$ksrc" -o -L "$ksrc"; then
kernelsourcedir="$ksrc"
else
@@ -173,45 +176,43 @@
AC_MSG_RESULT($kernelsourcedir)
KERNELSRC="$kernelsourcedir"
-
KERNELINC="$KERNELSRC/include"
if test ! -f "$KERNELINC/linux/autoconf.h"; then
AC_MSG_ERROR(No configured kernel include tree found)
fi
-saved_CPPFLAGS="$CPPFLAGS"
-saved_CFLAGS="$CFLAGS"
+OCFS2_CHECK_KVER($KERNELINC, ksourceversion, "source")
-CPPFLAGS="-I$KERNELINC $CPPFLAGS"
-CFLAGS="$KERNEL_CFLAGS $CFLAGS"
-AC_MSG_CHECKING(for kernel version)
-rm -f conf.kvertest
-AC_TRY_RUN([
-#include <stdio.h>
-#include <linux/version.h>
+if test "$kversion" != "$ksourceversion"; then
+ saved_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-I$KERNELINC $CPPFLAGS"
-int
-main (void)
-{
-#ifdef UTS_RELEASE
- FILE *f;
- f = fopen ("conf.kvertest", "w");
- if (!f)
- return 1;
- fprintf (f, "%s", UTS_RELEASE);
- fclose (f);
- return 0;
-#else
- return 1;
+ AC_EGREP_CPP(kernel_is_SuSE,
+[#include <linux/autoconf.h>
+#ifdef CONFIG_SUSE_KERNEL
+ kernel_is_SuSE
#endif
-}],kversion=`cat conf.kvertest`, kversion="none")
-AC_MSG_RESULT($kversion)
-rm -f conf.kvertest
+}], susekernel=yes, susekernel=no)
-if test "x$kversion" = "xnone"; then
- AC_MSG_ERROR([Could not determine kernel version.])
+ CPPFLAGS="$saved_CPPFLAGS"
+
+ vermatch=no
+
+ if test "$susekernel" = "yes"; then
+ kversion=`echo $kversion | sed 's/-[[^-]]*$//'`
+ ksourceversion=`echo $ksourceversion | sed 's/-[[^-]]*$//'`
+
+ if test "$kversion" = "$ksourceversion"; then
+ vermatch=yes
+ fi
+ fi
+
+ if test "$vermatch" = "no"; then
+ AC_MSG_ERROR([Kernel tree versions do not match.
+Perhaps you need to use the --with-kernel-source option?])
+ fi
fi
KERNEL_26=
@@ -250,32 +251,37 @@
AC_SUBST(COMPAT_SAFE_WRITE)
-AC_MSG_CHECKING([for kernel module symbol versions])
-AC_EGREP_CPP(kernel_has_modversions,
+MODVERSIONS=
+if test "x$KERNEL_26" != "xyes"; then
+ AC_MSG_CHECKING([for kernel module symbol versions])
+ AC_EGREP_CPP(kernel_has_modversions,
[#include <linux/autoconf.h>
#ifdef CONFIG_MODVERSIONS
kernel_has_modversions
#endif
}], modversions=yes, modversions=no)
-AC_MSG_RESULT($modversions)
+ AC_MSG_RESULT($modversions)
-MODVERSIONS=
-if test "x$modversions" = "xyes"; then
- MODVERSIONS="-include \$(KERNELINC)/linux/modversions.h -DMODVERSIONS"
+ if test "x$modversions" = "xyes"; then
+ MODVERSIONS="-include \$(KERNELINC)/linux/modversions.h -DMODVERSIONS"
+ fi
fi
AC_SUBST(MODVERSIONS)
-CPPFLAGS="-I$KERNELINC $saved_CPPFLAGS"
-
AC_MSG_CHECKING([for NPTL support])
if test "x$KERNEL_26" = "xyes"; then
have_NPTL=yes
else
+ saved_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-I$KERNELINC $saved_CPPFLAGS"
+
AC_TRY_COMPILE(
[#define __KERNEL__ 1
#include <linux/autoconf.h>
#include <linux/sched.h>],
[recalc_sigpending ();], have_NPTL=yes, have_NPTL=no)
+
+ CPPFLAGS="$saved_CPPFLAGS"
fi
AC_MSG_RESULT($have_NPTL)
@@ -283,9 +289,6 @@
AC_MSG_ERROR([No NPTL support, please try a 2.6.x kernel])
fi
-CPPFLAGS="$saved_CPPFLAGS"
-CFLAGS="$saved_CFLAGS"
-
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
@@ -364,13 +367,17 @@
MODULEDIR=$moddir
AC_SUBST(MODULEDIR)
-AC_MSG_CHECKING(for gcc include path)
-gccdir=`$CC -print-file-name=include`
-if test -z "$gccdir"; then
- AC_MSG_RESULT(not found)
- AC_MSG_ERROR(Could not determine gcc include path)
+if test "x$KERNEL_26" = "xyes"; then
+ gccdir=
else
- AC_MSG_RESULT($gccdir)
+ AC_MSG_CHECKING(for gcc include path)
+ gccdir=`$CC -print-file-name=include`
+ if test -z "$gccdir"; then
+ AC_MSG_RESULT(not found)
+ AC_MSG_ERROR(Could not determine gcc include path)
+ else
+ AC_MSG_RESULT($gccdir)
+ fi
fi
GCCINC=$gccdir
Added: trunk/kver.m4
===================================================================
--- trunk/kver.m4 2005-03-09 00:39:00 UTC (rev 1964)
+++ trunk/kver.m4 2005-03-09 00:46:54 UTC (rev 1965)
@@ -0,0 +1,45 @@
+AC_DEFUN([OCFS2_CHECK_KVER],
+ [AC_LANG_PREPROC_REQUIRE()dnl
+ AC_REQUIRE([AC_PROG_EGREP])dnl
+
+ check_kver_DESC="$3"
+
+ if test -n "$check_kver_DESC"; then
+ check_kver_DESC=" $check_kver_DESC"
+ fi
+
+ check_kver_saved_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-I$1 $CPPFLAGS -nostdinc"
+
+ AC_MSG_CHECKING(for kernel$check_kver_DESC version)
+
+ AC_LANG_CONFTEST([AC_LANG_SOURCE([
+#include <linux/version.h>
+
+#ifdef UTS_RELEASE
+check_kver_RESULT=UTS_RELEASE
+#else
+check_kver_RESULT=none
+#endif
+])])
+
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD |
+ $EGREP "^check_kver_RESULT=" > conftest.kver 2>&1; then
+ . ./conftest.kver
+ else
+ check_kver_RESULT='none'
+ fi
+
+ AC_MSG_RESULT($check_kver_RESULT)
+ rm -f conftest*
+
+ CPPFLAGS="$check_kver_saved_CPPFLAGS"
+
+ if test "x$check_kver_RESULT" != "xnone"; then
+ $2=$check_kver_RESULT
+ m4_default([$4], :)
+ else
+ m4_default([$5],
+ [AC_MSG_ERROR([Could not determine kernel$check_kver_DESC version.])])
+ fi
+])# OCFS2_CHECK_KVER
More information about the Ocfs2-commits
mailing list