From 85b0cc5420962f5e78985464eb126798d46adad7 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Thu, 4 Mar 2004 03:01:03 +0000 Subject: [PATCH] rewrote it... git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@1053 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- util-vserver/m4/ensc_syscallnr.m4 | 44 ++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/util-vserver/m4/ensc_syscallnr.m4 b/util-vserver/m4/ensc_syscallnr.m4 index 28297cf..4b90953 100644 --- a/util-vserver/m4/ensc_syscallnr.m4 +++ b/util-vserver/m4/ensc_syscallnr.m4 @@ -19,37 +19,43 @@ dnl Usage: ENSC_SYSCALLNR(,) AC_DEFUN([ENSC_SYSCALLNR], [ - AC_REQUIRE([ENSC_KERNEL_HEADERS]) AC_REQUIRE([AC_PROG_EGREP]) + AC_REQUIRE([ENSC_KERNEL_HEADERS]) AC_CACHE_CHECK([for number of syscall '$1'], [ensc_cv_value_syscall_$1], [ AC_LANG_PUSH(C) - AC_EGREP_CPP(ensc_cv_value_syscall_$1=auto, [ -#include -#ifdef __NR_$1 -ensc_cv_value_syscall_$1=auto -#endif -], - [ensc_cv_value_syscall_$1=auto], [ - AC_LANG_CONFTEST([ + AC_LANG_CONFTEST([ #include #ifdef __NR_$1 -ensc_cv_value_syscall_$1=__NR_$1 -#else -ensc_cv_value_syscall_$1=$2 +ensc_syscall_tmp_nr=__NR_$1; +ensc_syscall_tmp_src=ENSC_MARK #endif ]) - eval $($CPP $CPPFLAGS -I$ensc_cv_path_kernelheaders conftest.c | $EGREP -x 'ensc_cv_value_syscall_$1=[[1-9]][[0-9]]*') - if test x"$ensc_cv_value_syscall_$1" = x; then - AC_MSG_ERROR( + ensc_syscall_tmp_nr= + ensc_syscall_tmp_src= + test "$ensc_syscall_tmp_nr" || \ + eval $($CPP $CPPFLAGS -D ENSC_MARK='glibc' conftest.c | $EGREP '^ensc_syscall_tmp_(nr=[[1-9]][[0-9]]*;|src=.*)$') + test "$ensc_syscall_tmp_nr" || \ + eval $($CPP $CPPFLAGS -D ENSC_MARK='kernel' -I $kernelincludedir conftest.c | $EGREP '^ensc_syscall_tmp_(nr=[[1-9]][[0-9]]*;|src=.*)$') + test "$ensc_syscall_tmp_nr" || { + ensc_syscall_tmp_nr=$2 + ensc_syscall_tmp_src=default + } + + if test x"$ensc_syscall_tmp_nr" = x; then + AC_MSG_ERROR( [Can not determine value of __NR_$1; please verify your glibc/kernelheaders, and/or set CPPFLAGS='-D=__NR_$1=' environment when calling configure.]) - fi - ]) + fi AC_LANG_POP + + ensc_cv_value_syscall_$1="$ensc_syscall_tmp_nr/$ensc_syscall_tmp_src" ]) - if test x"$ensc_cv_value_syscall_$1" != xauto; then - AC_DEFINE_UNQUOTED(ENSC_SYSCALL__NR_$1, $ensc_cv_value_syscall_$1, [The number of the $1 syscall]) + ensc_syscall_tmp_nr=${ensc_cv_value_syscall_$1%/*} + ensc_syscall_tmp_src=${ensc_cv_value_syscall_$1#*/} + + if test x"$ensc_syscall_tmp_src" != x'glibc'; then + AC_DEFINE_UNQUOTED(ENSC_SYSCALL__NR_$1, $ensc_syscall_tmp_nr, [The number of the $1 syscall]) fi ]) -- 1.8.1.5