[glib] configure.ac: tweak inotify check



commit 450e7b1036fc95d41d6cb72d48824cd8b438037c
Author: Ryan Lortie <desrt desrt ca>
Date:   Thu Feb 13 18:26:07 2014 -0500

    configure.ac: tweak inotify check
    
    Our check for inotify_init1() being defined is broken.  We happily
    declare that inotify is supported, even if the check fails.
    
    This was originally intended to check for inotify_init1 in the libc so
    that we could fall back to inotify_init if it was not yet defined.
    
    FreeBSD has a libinotify that emulates the inotify API via kqueue.  It
    installs a <sys/inotify.h> header and requires linking to -linotify.  We
    don't want to falsely detect working inotify in this case.
    
    Treat the lack of inotify_init1() in the libc as a lack of inotify
    support.  This requires only a new libc -- we still support old kernels:
    in the case that inotify1_init() fails, we fall back to inotify_init().
    
    https://bugzilla.gnome.org/show_bug.cgi?id=724330

 configure.ac                 |    3 +--
 gio/giomodule.c              |    2 +-
 gio/inotify/inotify-kernel.c |    5 +----
 3 files changed, 3 insertions(+), 7 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 1c400ad..c38cd35 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1665,8 +1665,7 @@ dnl *****************************
 inotify_support=no
 AC_CHECK_HEADERS([sys/inotify.h],
 [
-       inotify_support=yes
-       AC_CHECK_FUNCS(inotify_init1)
+  AC_CHECK_FUNCS(inotify_init1, [inotify_support=yes], [inotify_support=no])
 ])
 
 AM_CONDITIONAL(HAVE_INOTIFY, [test "$inotify_support" = "yes"])
diff --git a/gio/giomodule.c b/gio/giomodule.c
index 5876fc5..219a739 100644
--- a/gio/giomodule.c
+++ b/gio/giomodule.c
@@ -1055,7 +1055,7 @@ _g_io_modules_ensure_loaded (void)
       /* Initialize types from built-in "modules" */
       g_type_ensure (g_null_settings_backend_get_type ());
       g_type_ensure (g_memory_settings_backend_get_type ());
-#if defined(HAVE_SYS_INOTIFY_H) || defined(HAVE_LINUX_INOTIFY_H)
+#if defined(HAVE_INOTIFY_INIT1)
       g_type_ensure (_g_inotify_directory_monitor_get_type ());
       g_type_ensure (_g_inotify_file_monitor_get_type ());
 #endif
diff --git a/gio/inotify/inotify-kernel.c b/gio/inotify/inotify-kernel.c
index 81294fa..b672cb1 100644
--- a/gio/inotify/inotify-kernel.c
+++ b/gio/inotify/inotify-kernel.c
@@ -196,11 +196,8 @@ gboolean _ik_startup (void (*cb)(ik_event_t *event))
 
   initialized = TRUE;
 
-#ifdef HAVE_INOTIFY_INIT1
   inotify_instance_fd = inotify_init1 (IN_CLOEXEC);
-#else
-  inotify_instance_fd = -1;
-#endif
+
   if (inotify_instance_fd < 0)
     inotify_instance_fd = inotify_init ();
 


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