tst-fanotify: check for linux/fanotify.h existence

We support older kernels that lack this header, so check for it
before we try to use it.

Reported-by: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
Mike Frysinger 2013-12-31 03:12:54 -05:00
parent dd1d85e5dd
commit c8590f9d9e
4 changed files with 69 additions and 0 deletions

View File

@ -1,3 +1,11 @@
2013-12-31 Mike Frysinger <vapier@gentoo.org>
* sysdeps/unix/sysv/linux/configure: Regenerated.
* sysdeps/unix/sysv/linux/configure.ac: Call AC_CHECK_HEADER on
the linux/fanotify.h header.
* sysdeps/unix/sysv/linux/tst-fanotify.c: Check if
HAVE_LINUX_FANOTIFY_H is defined.
2013-12-31 Siddhesh Poyarekar <siddhesh@redhat.com>
* benchtests/cos-inputs: New inputs.

View File

@ -1,3 +1,34 @@
# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
# -------------------------------------------------------
# Tests whether HEADER exists and can be compiled using the include files in
# INCLUDES, setting the cache variable VAR accordingly.
ac_fn_c_check_header_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
if eval \${$3+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
#include <$2>
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
eval "$3=yes"
else
eval "$3=no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
eval ac_res=\$$3
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_header_compile
# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
# Local configure fragment for sysdeps/unix/sysv/linux.
@ -267,6 +298,16 @@ else
*** compatible kernel version" "$LINENO" 5
fi
# Until we start requiring 2.6.37+ headers, we need to check for the
# availability of linux/fanotify.h for testing purposes.
ac_fn_c_check_header_compile "$LINENO" "linux/fanotify.h" "ac_cv_header_linux_fanotify_h" "/* No default includes. */
"
if test "x$ac_cv_header_linux_fanotify_h" = xyes; then :
DEFINES="$DEFINES -DHAVE_LINUX_FANOTIFY_H=1"
fi
# The result of the above test for the use of the FDE code is invalid if
# the user overrides the decision about the minimum ABI.
if test "$oldest_abi" != default && test "2.2.4" \< "$oldest_abi"; then

View File

@ -105,6 +105,12 @@ else
*** compatible kernel version])
fi
# Until we start requiring 2.6.37+ headers, we need to check for the
# availability of linux/fanotify.h for testing purposes.
AC_CHECK_HEADER(linux/fanotify.h,
[DEFINES="$DEFINES -DHAVE_LINUX_FANOTIFY_H=1"], ,
[/* No default includes. */])
# The result of the above test for the use of the FDE code is invalid if
# the user overrides the decision about the minimum ABI.
if test "$oldest_abi" != default && test "2.2.4" \< "$oldest_abi"; then

View File

@ -19,6 +19,18 @@
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#ifndef HAVE_LINUX_FANOTIFY_H
static int
do_test (void)
{
puts ("SKIP: missing support for fanotify due to old kernel headers");
return 0;
}
#else
#include <sys/fanotify.h>
static int
@ -56,5 +68,7 @@ do_test (void)
return 0;
}
#endif
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"