]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
tst-fanotify: check for linux/fanotify.h existence
authorMike Frysinger <vapier@gentoo.org>
Tue, 31 Dec 2013 08:12:54 +0000 (03:12 -0500)
committerMike Frysinger <vapier@gentoo.org>
Tue, 31 Dec 2013 08:16:42 +0000 (03:16 -0500)
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>
ChangeLog
sysdeps/unix/sysv/linux/configure
sysdeps/unix/sysv/linux/configure.ac
sysdeps/unix/sysv/linux/tst-fanotify.c

index 3a785abc2f53e27ed0d8f9544e546fe79f96a1a4..d2c23e79be470310f5f9b448ea8b86c2d994eb42 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
index 643da86efad825de678f45bc5f2a4524595c01f5..ab0f03c35e58ed066635a341fb921c3b6ee36749 100644 (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
index 1be921f65e4fc2d25b93c9d5d656873ad5928a6c..6d6053f27e39421bf2b75fc0f02a1a71e398d088 100644 (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
index ad9836b582d02520c5284542a0825770c9c0ed97..7b27545978e7b50d18c5f671d6c17bdfc77a0e90 100644 (file)
 #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"