[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

check for kernel support



Hello,

It was pointed out to me that changes required for NPTL have been
backported, so a general check for kernel version > x.y.z is
incorrect.

Attached for consideration is a patch to check for a few pieces of
kernel support required to run NPTL.

-i
ianw gelato unsw edu au
http://www.gelato.unsw.edu.au


diff -Nu ../nptl/sysdeps/unix/sysv/linux/configure.in nptl/sysdeps/unix/sysv/linux/configure.in
--- ../nptl/sysdeps/unix/sysv/linux/configure.in	1970-01-01 10:00:00.000000000 +1000
+++ nptl/sysdeps/unix/sysv/linux/configure.in	2003-03-14 15:50:16.000000000 +1100
@@ -0,0 +1,48 @@
+# Local configure fragment for nptl/sysdeps/unix/sysv/linux.
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+
+# The Linux kernel headers can be found in
+#   /lib/modules/$(uname -r)/build/include
+# Check whether this directory is available.
+# If the user uses --with-headers, the sysheaders
+# variable is set to this.
+if test -z "$sysheaders" &&
+   test "x$cross_compiling" = xno &&
+   test -d /lib/modules/`uname -r`/build/include; then
+  sysheaders="/lib/modules/`uname -r`/build/include"
+  ccheaders=`$CC -print-file-name=include`
+  dnl We don't have to use -nostdinc.  We just want one more directory
+  dnl to be used.
+  SYSINCLUDES="-I $sysheaders"
+fi
+
+if test -n "$sysheaders"; then
+  OLD_CPPFLAGS=$CPPFLAGS
+  CPPFLAGS="$CPPFLAGS $SYSINCLUDES"
+fi
+
+#check for a few choice requirements of NPTL
+AC_EGREP_CPP([eat flaming death], [#include <linux/unistd.h>
+#include <linux/sched.h>
+#if !defined __NR_exit_group || !defined __NR_tid_set_address || ]dnl
+[!defined CLONE_THREAD || !defined CLONE_PARENT_SETTID
+eat flaming death
+#endif], nptl_kernel_uptodate='TOO OLD!', nptl_kernel_uptodate=ok)
+
+#I put this here because the AC_EGREP_CPP checks for egrep and 
+#thus if inbetween the below lines, AC_EGREP_CPP screws up the output.
+AC_MSG_CHECKING(for kernel support for NPTL)
+AC_MSG_RESULT($nptl_kernel_uptodate)
+
+if test "$nptl_kernel_uptodate" = 'TOO OLD!'; then
+   AC_MSG_ERROR([dnl
+*** Current kernel headers insufficient for NPTL.
+*** NPTL requires extensive kernel support found only in later
+*** 2.5 series kernels or earier versions with specific back ports.])
+fi
+
+#reset cpp flags
+if test -n "$sysheaders"; then
+  CPPFLAGS=$OLD_CPPFLAGS
+fi
+

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]