xserver: Branch 'master'

Keith Packard keithp at kemper.freedesktop.org
Mon Oct 3 11:57:17 PDT 2011


 config/udev.c           |    4 ++++
 configure.ac            |    9 +++++++++
 include/dix-config.h.in |    6 ++++++
 3 files changed, 19 insertions(+)

New commits:
commit fad04dd9701aa76249a0bab31676103debb84307
Author: Lennart Poettering <lennart at poettering.net>
Date:   Tue Sep 27 18:04:06 2011 +0100

    udev: make use of udev_enumerate_add_match_tag() only when it is available
    
    udev_enumerate_add_match_tag() and udev_monitor_filter_add_match_tag()
    are mostly optimizations, hence simply skip these calls if they are not
    available in the installed version of libudev.
    
    This should fix the build on older versions of udev.
    
    [airlied: fixes tinderbox failures on RHEL6]
    
    Signed-off-by: Lennart Poettering <lennart at poettering.net>
    Reviewed-by: Dave Airlie <airlied at redhat.com>
    Tested-by: Dave Airlie <airlied at redhat.com>
    Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/config/udev.c b/config/udev.c
index 1ba0d50..e2b3726 100644
--- a/config/udev.c
+++ b/config/udev.c
@@ -285,8 +285,10 @@ config_udev_init(void)
     udev_monitor_filter_add_match_subsystem_devtype(udev_monitor, "input", NULL);
     udev_monitor_filter_add_match_subsystem_devtype(udev_monitor, "tty", NULL); /* For Wacom serial devices */
 
+#ifdef HAVE_UDEV_MONITOR_FILTER_ADD_MATCH_TAG
     if (SeatId && strcmp(SeatId, "seat0"))
         udev_monitor_filter_add_match_tag(udev_monitor, SeatId);
+#endif
 
     if (udev_monitor_enable_receiving(udev_monitor)) {
         ErrorF("config/udev: failed to bind the udev monitor\n");
@@ -300,8 +302,10 @@ config_udev_init(void)
     udev_enumerate_add_match_subsystem(enumerate, "input");
     udev_enumerate_add_match_subsystem(enumerate, "tty");
 
+#ifdef HAVE_UDEV_ENUMERATE_ADD_MATCH_TAG
     if (SeatId && strcmp(SeatId, "seat0"))
         udev_enumerate_add_match_tag(enumerate, SeatId);
+#endif
 
     udev_enumerate_scan_devices(enumerate);
     devices = udev_enumerate_get_list_entry(enumerate);
diff --git a/configure.ac b/configure.ac
index ecd5386..7c5aaaf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -822,6 +822,15 @@ if test "x$CONFIG_UDEV" = xyes; then
 		AC_MSG_ERROR([udev configuration API requested, but libudev is not installed])
 	fi
 	AC_DEFINE(CONFIG_UDEV, 1, [Use libudev for input hotplug])
+
+	SAVE_LIBS=$LIBS
+	SAVE_CFLAGS=$CFLAGS
+	CFLAGS=$UDEV_CFLAGS
+	LIBS=$UDEV_LIBS
+	AC_CHECK_FUNCS([udev_monitor_filter_add_match_tag])
+	AC_CHECK_FUNCS([udev_enumerate_add_match_tag])
+	LIBS=$SAVE_LIBS
+	CFLAGS=$SAVE_CFLAGS
 fi
 
 dnl HAVE_DBUS is true if we actually have the D-Bus library, whereas
diff --git a/include/dix-config.h.in b/include/dix-config.h.in
index aa7de60..7d6cb96 100644
--- a/include/dix-config.h.in
+++ b/include/dix-config.h.in
@@ -399,6 +399,12 @@
 /* Use libudev for input hotplug */
 #undef CONFIG_UDEV
 
+/* Use udev_monitor_filter_add_match_tag() */
+#undef HAVE_UDEV_MONITOR_FILTER_ADD_MATCH_TAG
+
+/* Use udev_enumerate_add_match_tag() */
+#undef HAVE_UDEV_ENUMERATE_ADD_MATCH_TAG
+
 /* Use D-Bus for input hotplug */
 #undef CONFIG_NEED_DBUS
 


More information about the xorg-commit mailing list