UPDATE: xf86-input-synaptics 1.7.5

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

UPDATE: xf86-input-synaptics 1.7.5

Alexander Shadchin
Hi,

This diff updates xf86-input-synaptics to the latest release 1.7.5.

Comments ? OK ?

--
Alexandr Shadchin

Index: ChangeLog
===================================================================
RCS file: /cvs/xenocara/driver/xf86-input-synaptics/ChangeLog,v
retrieving revision 1.6
diff -u -p -r1.6 ChangeLog
--- ChangeLog 2 Jun 2013 18:17:24 -0000 1.6
+++ ChangeLog 8 May 2014 18:28:24 -0000
@@ -1,3 +1,194 @@
+commit baca0fde5958d9dc17a9b13372cc8819170e2f74
+Author: Peter Hutterer <[hidden email]>
+Date:   Tue Apr 29 14:27:30 2014 +1000
+
+    synaptics 1.7.5
+    
+    Signed-off-by: Peter Hutterer <[hidden email]>
+
+commit bbaf4d646ebf4393a1ee0eb9bcc569054ed878f9
+Author: Peter Hutterer <[hidden email]>
+Date:   Thu Mar 20 11:51:17 2014 +1000
+
+    Avoid erroneously handling two touchpoints in the same slot
+    
+    If a slot's ABS_MT_TRACKING_ID event was received during SYN_DROPPED, the
+    driver isn't aware that a touchpoint has started or ended in that slot. When
+    the next ABS_MT_TRACKING_ID event arrives, the driver would unconditionally
+    close or open a new touchpoint. This could lead to two or more touchpoints
+    being opened in the same slot, the first of which is never terminated.
+    Or it could lead to a touchpoint being terminated that was never opened.
+    
+    The event sequences that trigger this are:
+        ABS_MT_TRACKING_ID 83
+        ABS_MT_TRACKING_ID -1
+        SYN_DROPPED             // new touchpoint started here
+        ABS_MT_TRACKING_ID -1
+    
+    and
+    
+        ABS_MT_TRACKING_ID 83
+        SYN_DROPPED             // touchpoint ended here
+        ABS_MT_TRACKING_ID 84
+        ABS_MT_TRACKING_ID -1
+    
+    We don't properly handle SYN_DROPPED, but we can avoid this by only starting a
+    new touchpoint when we transition between -1 and a valid tracking ID.
+    
+    Signed-off-by: Peter Hutterer <[hidden email]>
+
+commit a21b3bd602b31ee995b391a7b917282e7b0a1c33
+Author: Peter Hutterer <[hidden email]>
+Date:   Thu Mar 20 10:58:53 2014 +1000
+
+    eventcomm: drop assumption of non-zero slot offset
+    
+    The kernel guarantees this is always 0
+    
+    Signed-off-by: Peter Hutterer <[hidden email]>
+
+commit 91cc1e82143b939bfb4fce97429b07105333e146
+Author: Peter Hutterer <[hidden email]>
+Date:   Mon Mar 10 16:42:34 2014 +1000
+
+    eventcomm: drop calculation of slot offset
+    
+    The kernel guarantees slots start at 0
+    
+    Signed-off-by: Peter Hutterer <[hidden email]>
+    Reviewed-by: Hans de Goede <[hidden email]>
+    Reviewed-by: Benjamin Tissoires <[hidden email]>
+    (cherry picked from commit 5b7e1726369d4973859996f225bec743c2e21288)
+
+commit 8a5533aaa7e6e57bca7674de4cd25b3a18217d44
+Author: Peter Hutterer <[hidden email]>
+Date:   Wed Mar 12 09:42:38 2014 +1000
+
+    synaptics 1.7.4
+    
+    Signed-off-by: Peter Hutterer <[hidden email]>
+
+commit c189854a688465c820d5ef5767e00b69394a1601
+Author: Keith Packard <[hidden email]>
+Date:   Sat Feb 22 01:44:37 2014 -0800
+
+    Close device if DeviceOnHook fails
+    
+    Signed-off-by: Keith Packard <[hidden email]>
+    Signed-off-by: Peter Hutterer <[hidden email]>
+    (cherry picked from commit 22fe8bdc6668e78853768c62f4d1331114c7eca0)
+
+commit 503082bf17dfc4cb3d4b794ea514ac6f413c07f2
+Author: Peter Hutterer <[hidden email]>
+Date:   Tue Feb 18 10:14:37 2014 +1000
+
+    man: setting scroll deltas to 0 doesn't work (#75074)
+    
+    6d47d33 disallows a zero value for horizontal/vertical scroll deltas but the
+    man page wasn't updated. We've added separate toggles to enable/disable
+    scrolling a few years ago, setting the distance to 0 is not recommended.
+    
+    X.Org Bug 75074 <http://bugs.freedesktop.org/show_bug.cgi?id=75074>
+    
+    Signed-off-by: Peter Hutterer <[hidden email]>
+    (cherry picked from commit 2ea76fad6545a712713de1a09965158805e83c55)
+
+commit 0b70c76eab57822526585bbd11a1408bd115f26b
+Author: Peter Hutterer <[hidden email]>
+Date:   Thu Feb 13 14:55:12 2014 +1000
+
+    Revert "Drop circular pad support"
+    
+    This reverts commit 3b02e7fd81da4b100fb9ac32378f6d50f54cf0e2.
+    
+    Signed-off-by: Peter Hutterer <[hidden email]>
+    
+    Conflicts:
+     man/synaptics.man
+     src/synaptics.c
+    
+    Acked-by: Daniel Stone <[hidden email]>
+    (cherry picked from commit 4f543ce1d6ae9ca11086a3009d149505590584a8)
+
+commit 1bd4ca3b5af6e5ee98c7d7f153fd4ee643c29e1a
+Author: Peter Hutterer <[hidden email]>
+Date:   Fri Jan 17 08:24:35 2014 +1000
+
+    Revert "Purge scrollbuttons (repeat)"
+    
+    This reverts commit 0903d99ada1755f11a2a5cbf89a345de896e18ec.
+    
+    Scroll buttons are still present in some modern devices, e.g. the Fujitsu
+    Lifebook E782 and others in the series.
+    
+    Conflicts:
+     include/synaptics.h
+     man/synaptics.man
+     src/synaptics.c
+    
+    (cherry picked from commit e0069c154440305ece6def92a9813a9f8004b2fb)
+
+commit 90d93891be0dcc55d87c349ab438144ead818402
+Author: Peter Hutterer <[hidden email]>
+Date:   Mon Jan 13 15:14:06 2014 +1000
+
+    synaptics 1.7.3
+    
+    Signed-off-by: Peter Hutterer <[hidden email]>
+
+commit b227ca373de79fe6852ac09e71465c048790cd5b
+Author: Peter Hutterer <[hidden email]>
+Date:   Fri Jan 3 11:23:22 2014 +1000
+
+    Fix ABI detection for in-driver scaling
+    
+    Signed-off-by: Peter Hutterer <[hidden email]>
+    (cherry picked from commit 49fe70e99d1b0932ab915824c78f952a0fdb3ee7)
+
+commit 88d926d12a1f5c06ee2825de5bc4b2222ec29c78
+Author: Peter Hutterer <[hidden email]>
+Date:   Mon Dec 9 11:28:23 2013 +1000
+
+    synaptics 1.7.2
+    
+    Signed-off-by: Peter Hutterer <[hidden email]>
+
+commit 61243ada3e1e10f6d32a899a6cc595efa244eb25
+Author: Peter Hutterer <[hidden email]>
+Date:   Wed Dec 4 07:58:26 2013 +1000
+
+    eventcomm: ungrab the device on DeviceOff
+    
+    For symmetry, the kernel should ungrab when we close the fd.
+    
+    Signed-off-by: Peter Hutterer <[hidden email]>
+    
+    [modified for the 1.7 branch which isn't using libevdev yet]
+    
+    (cherry picked from commit 5d391e352f4e502ada6444a7ce860683e3480fbf)
+
+commit 09ac39309fbee01aa047dab1b0f577dc2571cdd1
+Author: Peter Hutterer <[hidden email]>
+Date:   Thu Dec 5 09:31:11 2013 +1000
+
+    Add missing property handler for the pressure motion factor
+    
+    Signed-off-by: Peter Hutterer <[hidden email]>
+    (cherry picked from commit 29318c1d94510cfb6d5d712e912af111f99edb42)
+
+commit f4ddbde165843924195b08551d7d6d6200c44b23
+Author: Peter Hutterer <[hidden email]>
+Date:   Fri Jul 19 11:08:43 2013 +1000
+
+    Disable driver scaling for input ABI 19.2
+    
+    For absolute devices in relative mode, i.e. touchpads, the server now takes
+    device resolution into account. Doing so means that the driver mustn't
+    scale, so we deactivate those bits in the driver.
+    
+    Signed-off-by: Peter Hutterer <[hidden email]>
+    (cherry picked from commit 0fb59b3487d57523a03f078a2061e2ea0cacbc7c)
+
 commit 96cf04dce19e7c90bc05b8b3b192b5bfb97381d2
 Author: Peter Hutterer <[hidden email]>
 Date:   Mon May 13 10:03:48 2013 +1000
Index: Makefile.in
===================================================================
RCS file: /cvs/xenocara/driver/xf86-input-synaptics/Makefile.in,v
retrieving revision 1.7
diff -u -p -r1.7 Makefile.in
--- Makefile.in 2 Jun 2013 18:17:24 -0000 1.7
+++ Makefile.in 8 May 2014 18:28:24 -0000
@@ -269,6 +269,8 @@ PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
Index: aclocal.m4
===================================================================
RCS file: /cvs/xenocara/driver/xf86-input-synaptics/aclocal.m4,v
retrieving revision 1.5
diff -u -p -r1.5 aclocal.m4
--- aclocal.m4 2 Jun 2013 18:17:24 -0000 1.5
+++ aclocal.m4 8 May 2014 18:28:28 -0000
@@ -8607,6 +8607,7 @@ m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT
 m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
 
 # pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
+# serial 1 (pkg-config-0.24)
 #
 # Copyright © 2004 Scott James Remnant <[hidden email]>.
 #
@@ -8633,8 +8634,12 @@ m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_L
 # ----------------------------------
 AC_DEFUN([PKG_PROG_PKG_CONFIG],
 [m4_pattern_forbid([^_?PKG_[A-Z_]+$])
-m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
-AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
+m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
+m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
+AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
+AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
+
 if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
  AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
 fi
@@ -8647,7 +8652,6 @@ if test -n "$PKG_CONFIG"; then
  AC_MSG_RESULT([no])
  PKG_CONFIG=""
  fi
-
 fi[]dnl
 ])# PKG_PROG_PKG_CONFIG
 
@@ -8656,34 +8660,32 @@ fi[]dnl
 # Check to see whether a particular set of modules exists.  Similar
 # to PKG_CHECK_MODULES(), but does not set variables or print errors.
 #
-#
-# Similar to PKG_CHECK_MODULES, make sure that the first instance of
-# this or PKG_CHECK_MODULES is called, or make sure to call
-# PKG_CHECK_EXISTS manually
+# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+# only at the first occurence in configure.ac, so if the first place
+# it's called might be skipped (such as if it is within an "if", you
+# have to call PKG_CHECK_EXISTS manually
 # --------------------------------------------------------------
 AC_DEFUN([PKG_CHECK_EXISTS],
 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
 if test -n "$PKG_CONFIG" && \
     AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
-  m4_ifval([$2], [$2], [:])
+  m4_default([$2], [:])
 m4_ifvaln([$3], [else
   $3])dnl
 fi])
 
-
 # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
 # ---------------------------------------------
 m4_define([_PKG_CONFIG],
-[if test -n "$PKG_CONFIG"; then
-    if test -n "$$1"; then
-        pkg_cv_[]$1="$$1"
-    else
-        PKG_CHECK_EXISTS([$3],
-                         [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
- [pkg_failed=yes])
-    fi
-else
- pkg_failed=untried
+[if test -n "$$1"; then
+    pkg_cv_[]$1="$$1"
+ elif test -n "$PKG_CONFIG"; then
+    PKG_CHECK_EXISTS([$3],
+                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
+      test "x$?" != "x0" && pkg_failed=yes ],
+     [pkg_failed=yes])
+ else
+    pkg_failed=untried
 fi[]dnl
 ])# _PKG_CONFIG
 
@@ -8725,16 +8727,17 @@ and $1[]_LIBS to avoid the need to call
 See the pkg-config man page for more details.])
 
 if test $pkg_failed = yes; then
+   AC_MSG_RESULT([no])
         _PKG_SHORT_ERRORS_SUPPORTED
         if test $_pkg_short_errors_supported = yes; then
-        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"`
+        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
         else
-        $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
+        $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
         fi
  # Put the nasty error message in config.log where it belongs
  echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
 
- ifelse([$4], , [AC_MSG_ERROR(dnl
+ m4_default([$4], [AC_MSG_ERROR(
 [Package requirements ($2) were not met:
 
 $$1_PKG_ERRORS
@@ -8742,28 +8745,67 @@ $$1_PKG_ERRORS
 Consider adjusting the PKG_CONFIG_PATH environment variable if you
 installed software in a non-standard prefix.
 
-_PKG_TEXT
-])],
- [AC_MSG_RESULT([no])
-                $4])
+_PKG_TEXT])[]dnl
+        ])
 elif test $pkg_failed = untried; then
- ifelse([$4], , [AC_MSG_FAILURE(dnl
+     AC_MSG_RESULT([no])
+ m4_default([$4], [AC_MSG_FAILURE(
 [The pkg-config script could not be found or is too old.  Make sure it
 is in your PATH or set the PKG_CONFIG environment variable to the full
 path to pkg-config.
 
 _PKG_TEXT
 
-To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.])],
- [$4])
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
+        ])
 else
  $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
  $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
         AC_MSG_RESULT([yes])
- ifelse([$3], , :, [$3])
+ $3
 fi[]dnl
 ])# PKG_CHECK_MODULES
 
+
+# PKG_INSTALLDIR(DIRECTORY)
+# -------------------------
+# Substitutes the variable pkgconfigdir as the location where a module
+# should install pkg-config .pc files. By default the directory is
+# $libdir/pkgconfig, but the default can be changed by passing
+# DIRECTORY. The user can override through the --with-pkgconfigdir
+# parameter.
+AC_DEFUN([PKG_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+    [pkg-config installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([pkgconfigdir],
+    [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
+    [with_pkgconfigdir=]pkg_default)
+AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+]) dnl PKG_INSTALLDIR
+
+
+# PKG_NOARCH_INSTALLDIR(DIRECTORY)
+# -------------------------
+# Substitutes the variable noarch_pkgconfigdir as the location where a
+# module should install arch-independent pkg-config .pc files. By
+# default the directory is $datadir/pkgconfig, but the default can be
+# changed by passing DIRECTORY. The user can override through the
+# --with-noarch-pkgconfigdir parameter.
+AC_DEFUN([PKG_NOARCH_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+    [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([noarch-pkgconfigdir],
+    [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
+    [with_noarch_pkgconfigdir=]pkg_default)
+AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+]) dnl PKG_NOARCH_INSTALLDIR
+
 # Copyright (C) 2002-2012 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
@@ -9788,7 +9830,7 @@ AC_SUBST([am__untar])
 dnl xorg-macros.m4.  Generated from xorg-macros.m4.in xorgversion.m4 by configure.
 dnl
 dnl Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
-dnl
+dnl
 dnl Permission is hereby granted, free of charge, to any person obtaining a
 dnl copy of this software and associated documentation files (the "Software"),
 dnl to deal in the Software without restriction, including without limitation
@@ -9821,10 +9863,10 @@ dnl DEALINGS IN THE SOFTWARE.
 #     [m4_fatal([must install xorg-macros 1.1 or later before running autoconf/autogen])])
 #
 #
-# See the "minimum version" comment for each macro you use to see what
+# See the "minimum version" comment for each macro you use to see what
 # version you require.
 m4_defun([XORG_MACROS_VERSION],[
-m4_define([vers_have], [1.16.2])
+m4_define([vers_have], [1.19.0])
 m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.])))
 m4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.])))
 m4_if(m4_cmp(maj_have, maj_needed), 0,,
@@ -9844,7 +9886,7 @@ m4_undefine([maj_needed])
 # such as man pages and config files
 AC_DEFUN([XORG_PROG_RAWCPP],[
 AC_REQUIRE([AC_PROG_CPP])
-AC_PATH_PROGS(RAWCPP, [cpp], [${CPP}],
+AC_PATH_PROGS(RAWCPP, [cpp], [${CPP}],
    [$PATH:/bin:/usr/bin:/usr/lib:/usr/libexec:/usr/ccs/lib:/usr/ccs/lbin:/lib])
 
 # Check for flag to avoid builtin definitions - assumes unix is predefined,
@@ -9874,6 +9916,7 @@ if test `${RAWCPP} < conftest.$ac_ext |
  AC_MSG_RESULT([no])
 else
  if test `${RAWCPP} -traditional < conftest.$ac_ext | grep -c 'preserve   \"'` -eq 1 ; then
+ TRADITIONALCPPFLAGS="-traditional"
  RAWCPPFLAGS="${RAWCPPFLAGS} -traditional"
  AC_MSG_RESULT([yes])
  else
@@ -9882,6 +9925,7 @@ else
 fi
 rm -f conftest.$ac_ext
 AC_SUBST(RAWCPPFLAGS)
+AC_SUBST(TRADITIONALCPPFLAGS)
 ]) # XORG_PROG_RAWCPP
 
 # XORG_MANPAGE_SECTIONS()
@@ -10406,9 +10450,10 @@ AM_CONDITIONAL([HAVE_ASCIIDOC], [test "$
 ]) # XORG_WITH_ASCIIDOC
 
 # XORG_WITH_DOXYGEN([MIN-VERSION], [DEFAULT])
-# --------------------------------
+# -------------------------------------------
 # Minimum version: 1.5.0
 # Minimum version for optional DEFAULT argument: 1.11.0
+# Minimum version for optional DOT checking: 1.18.0
 #
 # Documentation tools are not always available on all platforms and sometimes
 # not at the appropriate level. This macro enables a module to test for the
@@ -10428,6 +10473,7 @@ AM_CONDITIONAL([HAVE_ASCIIDOC], [test "$
 #
 AC_DEFUN([XORG_WITH_DOXYGEN],[
 AC_ARG_VAR([DOXYGEN], [Path to doxygen command])
+AC_ARG_VAR([DOT], [Path to the dot graphics utility])
 m4_define([_defopt], m4_default([$2], [auto]))
 AC_ARG_WITH(doxygen,
  AS_HELP_STRING([--with-doxygen],
@@ -10471,6 +10517,20 @@ m4_ifval([$1],
             AC_MSG_ERROR([doxygen version $doxygen_version found, but $1 needed])
         fi])
 fi])
+
+dnl Check for DOT if we have doxygen. The caller decides if it is mandatory
+dnl HAVE_DOT is a variable that can be used in your doxygen.in config file:
+dnl HAVE_DOT = @HAVE_DOT@
+HAVE_DOT=no
+if test "x$have_doxygen" = "xyes"; then
+  AC_PATH_PROG([DOT], [dot])
+    if test "x$DOT" != "x"; then
+      HAVE_DOT=yes
+    fi
+fi
+
+AC_SUBST([HAVE_DOT])
+AM_CONDITIONAL([HAVE_DOT], [test "$HAVE_DOT" = "yes"])
 AM_CONDITIONAL([HAVE_DOXYGEN], [test "$have_doxygen" = yes])
 ]) # XORG_WITH_DOXYGEN
 
@@ -10653,6 +10713,29 @@ fi])
 AM_CONDITIONAL([HAVE_FOP], [test "$have_fop" = yes])
 ]) # XORG_WITH_FOP
 
+# XORG_WITH_M4([MIN-VERSION])
+# ---------------------------
+# Minimum version: 1.19.0
+#
+# This macro attempts to locate an m4 macro processor which supports
+# -I option and is only useful for modules relying on M4 in order to
+# expand macros in source code files.
+#
+# Interface to module:
+# M4: returns the path of the m4 program found
+# returns the path set by the user in the environment
+#
+AC_DEFUN([XORG_WITH_M4], [
+AC_CACHE_CHECK([for m4 that supports -I option], [ac_cv_path_M4],
+   [AC_PATH_PROGS_FEATURE_CHECK([M4], [m4 gm4],
+       [[$ac_path_M4 -I. /dev/null > /dev/null 2>&1 && \
+         ac_cv_path_M4=$ac_path_M4 ac_path_M4_found=:]],
+   [AC_MSG_ERROR([could not find m4 that supports -I option])],
+   [$PATH:/usr/gnu/bin])])
+
+AC_SUBST([M4], [$ac_cv_path_M4])
+]) # XORG_WITH_M4
+
 # XORG_WITH_PS2PDF([DEFAULT])
 # ----------------
 # Minimum version: 1.6.0
@@ -11107,7 +11190,8 @@ AC_ARG_ENABLE(malloc0returnsnull,
 
 AC_MSG_CHECKING([whether malloc(0) returns NULL])
 if test "x$MALLOC_ZERO_RETURNS_NULL" = xauto; then
- AC_RUN_IFELSE([AC_LANG_PROGRAM([
+AC_CACHE_VAL([xorg_cv_malloc0_returns_null],
+ [AC_RUN_IFELSE([AC_LANG_PROGRAM([
 #include <stdlib.h>
 ],[
     char *m0, *r0, *c0, *p;
@@ -11117,9 +11201,9 @@ if test "x$MALLOC_ZERO_RETURNS_NULL" = x
     c0 = calloc(0,10);
     exit((m0 == 0 || r0 == 0 || c0 == 0) ? 0 : 1);
 ])],
- [MALLOC_ZERO_RETURNS_NULL=yes],
- [MALLOC_ZERO_RETURNS_NULL=no],
- [MALLOC_ZERO_RETURNS_NULL=yes])
+ [xorg_cv_malloc0_returns_null=yes],
+ [xorg_cv_malloc0_returns_null=no])])
+MALLOC_ZERO_RETURNS_NULL=$xorg_cv_malloc0_returns_null
 fi
 AC_MSG_RESULT([$MALLOC_ZERO_RETURNS_NULL])
 
@@ -11330,18 +11414,18 @@ fi
 found="no"
 m4_foreach([flag], m4_cdr($@), [
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_]CACHE_PREFIX[_unknown_warning_option" = "xyes" ; then
  PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_]CACHE_PREFIX[_unused_command_line_argument" = "xyes" ; then
  PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unused-command-line-argument"
  fi
 
  PREFIX[FLAGS]="$PREFIX[FLAGS] ]flag["
 
 dnl Some hackery here since AC_CACHE_VAL can't handle a non-literal varname
- AC_MSG_CHECKING([if ]COMPILER[ supports]flag[])
+ AC_MSG_CHECKING([if ]COMPILER[ supports ]flag[])
  cacheid=AS_TR_SH([xorg_cv_]CACHE_PREFIX[_flag_]flag[])
  AC_CACHE_VAL($cacheid,
      [AC_LINK_IFELSE([AC_LANG_PROGRAM([int i;])],
@@ -11408,7 +11492,7 @@ AC_LANG_CASE(
  XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-prototypes])
  XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wnested-externs])
  XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wbad-function-cast])
- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wold-style-definition])
+ XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wold-style-definition], [-fd])
  XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wdeclaration-after-statement])
  ]
 )
@@ -11417,16 +11501,17 @@ AC_LANG_CASE(
 XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wunused])
 XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wuninitialized])
 XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wshadow])
-XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-qual])
 XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-noreturn])
 XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-format-attribute])
+# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wredundant-decls])
+XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wlogical-op])
 
 # These are currently disabled because they are noisy.  They will be enabled
 # in the future once the codebase is sufficiently modernized to silence
 # them.  For now, I don't want them to drown out the other warnings.
-# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wlogical-op])
 # XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wparentheses])
 # XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-align])
+# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-qual])
 
 # Turn some warnings into errors, so we don't accidently get successful builds
 # when there are problems that should be fixed.
@@ -11600,7 +11685,7 @@ dnl
 # XORG_RELEASE_VERSION
 # --------------------
 # Defines PACKAGE_VERSION_{MAJOR,MINOR,PATCHLEVEL} for modules to use.
-
+
 AC_DEFUN([XORG_RELEASE_VERSION],[
  AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MAJOR],
  [`echo $PACKAGE_VERSION | cut -d . -f 1`],
@@ -11662,10 +11747,10 @@ dnl other dealings in this Software with
 dnl from the copyright holders.
 dnl
 
-# XORG_DRIVER_CHECK_EXT()
+# XORG_DRIVER_CHECK_EXT(MACRO, PROTO)
 # --------------------------
-# Checks for the $1 define in xorg-server.h (from the sdk).  If it
-# is defined, then add $1 to $REQUIRED_MODULES.
+# Checks for the MACRO define in xorg-server.h (from the sdk).  If it
+# is defined, then add the given PROTO to $REQUIRED_MODULES.
 
 AC_DEFUN([XORG_DRIVER_CHECK_EXT],[
  AC_REQUIRE([PKG_PROG_PKG_CONFIG])
Index: configure
===================================================================
RCS file: /cvs/xenocara/driver/xf86-input-synaptics/configure,v
retrieving revision 1.7
diff -u -p -r1.7 configure
--- configure 2 Jun 2013 18:17:24 -0000 1.7
+++ configure 8 May 2014 18:28:32 -0000
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for xf86-input-synaptics 1.7.1.
+# Generated by GNU Autoconf 2.69 for xf86-input-synaptics 1.7.5.
 #
 # Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
 #
@@ -591,8 +591,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='xf86-input-synaptics'
 PACKAGE_TARNAME='xf86-input-synaptics'
-PACKAGE_VERSION='1.7.1'
-PACKAGE_STRING='xf86-input-synaptics 1.7.1'
+PACKAGE_VERSION='1.7.5'
+PACKAGE_STRING='xf86-input-synaptics 1.7.5'
 PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
 PACKAGE_URL=''
 
@@ -682,6 +682,8 @@ FILE_MAN_SUFFIX
 LIB_MAN_SUFFIX
 APP_MAN_SUFFIX
 INSTALL_CMD
+PKG_CONFIG_LIBDIR
+PKG_CONFIG_PATH
 PKG_CONFIG
 CHANGELOG_CMD
 STRICT_CFLAGS
@@ -829,6 +831,8 @@ LIBS
 CPPFLAGS
 CPP
 PKG_CONFIG
+PKG_CONFIG_PATH
+PKG_CONFIG_LIBDIR
 XORG_MALLOC_DEBUG_ENV
 XORG_CFLAGS
 XORG_LIBS
@@ -1378,7 +1382,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures xf86-input-synaptics 1.7.1 to adapt to many kinds of systems.
+\`configure' configures xf86-input-synaptics 1.7.5 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1449,7 +1453,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of xf86-input-synaptics 1.7.1:";;
+     short | recursive ) echo "Configuration of xf86-input-synaptics 1.7.5:";;
    esac
   cat <<\_ACEOF
 
@@ -1506,6 +1510,10 @@ Some influential environment variables:
               you have headers in a nonstandard directory <include dir>
   CPP         C preprocessor
   PKG_CONFIG  path to pkg-config utility
+  PKG_CONFIG_PATH
+              directories to add to pkg-config's search path
+  PKG_CONFIG_LIBDIR
+              path overriding pkg-config's built-in search path
   XORG_MALLOC_DEBUG_ENV
               Environment variables to enable memory checking in tests
   XORG_CFLAGS C compiler flags for XORG, overriding pkg-config
@@ -1584,7 +1592,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-xf86-input-synaptics configure 1.7.1
+xf86-input-synaptics configure 1.7.5
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1908,7 +1916,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by xf86-input-synaptics $as_me 1.7.1, which was
+It was created by xf86-input-synaptics $as_me 1.7.5, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2737,7 +2745,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='xf86-input-synaptics'
- VERSION='1.7.1'
+ VERSION='1.7.5'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -11585,6 +11593,11 @@ fi
 
 
 
+
+
+
+
+
 if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
  if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
@@ -11697,7 +11710,6 @@ $as_echo "yes" >&6; }
 $as_echo "no" >&6; }
  PKG_CONFIG=""
  fi
-
 fi
 
 
@@ -11792,18 +11804,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Wall"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wall" >&5
-$as_echo_n "checking if $CC supports-Wall... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wall" >&5
+$as_echo_n "checking if $CC supports -Wall... " >&6; }
  cacheid=xorg_cv_cc_flag__Wall
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -11910,18 +11922,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Wpointer-arith"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wpointer-arith" >&5
-$as_echo_n "checking if $CC supports-Wpointer-arith... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wpointer-arith" >&5
+$as_echo_n "checking if $CC supports -Wpointer-arith... " >&6; }
  cacheid=xorg_cv_cc_flag__Wpointer_arith
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -12028,18 +12040,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Wmissing-declarations"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmissing-declarations" >&5
-$as_echo_n "checking if $CC supports-Wmissing-declarations... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wmissing-declarations" >&5
+$as_echo_n "checking if $CC supports -Wmissing-declarations... " >&6; }
  cacheid=xorg_cv_cc_flag__Wmissing_declarations
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -12146,18 +12158,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Wformat=2"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wformat=2" >&5
-$as_echo_n "checking if $CC supports-Wformat=2... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wformat=2" >&5
+$as_echo_n "checking if $CC supports -Wformat=2... " >&6; }
  cacheid=xorg_cv_cc_flag__Wformat_2
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -12195,18 +12207,18 @@ $as_echo "$supported" >&6; }
  fi
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Wformat"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wformat" >&5
-$as_echo_n "checking if $CC supports-Wformat... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wformat" >&5
+$as_echo_n "checking if $CC supports -Wformat... " >&6; }
  cacheid=xorg_cv_cc_flag__Wformat
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -12315,18 +12327,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Wstrict-prototypes"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wstrict-prototypes" >&5
-$as_echo_n "checking if $CC supports-Wstrict-prototypes... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wstrict-prototypes" >&5
+$as_echo_n "checking if $CC supports -Wstrict-prototypes... " >&6; }
  cacheid=xorg_cv_cc_flag__Wstrict_prototypes
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -12433,18 +12445,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Wmissing-prototypes"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmissing-prototypes" >&5
-$as_echo_n "checking if $CC supports-Wmissing-prototypes... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wmissing-prototypes" >&5
+$as_echo_n "checking if $CC supports -Wmissing-prototypes... " >&6; }
  cacheid=xorg_cv_cc_flag__Wmissing_prototypes
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -12551,18 +12563,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Wnested-externs"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wnested-externs" >&5
-$as_echo_n "checking if $CC supports-Wnested-externs... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wnested-externs" >&5
+$as_echo_n "checking if $CC supports -Wnested-externs... " >&6; }
  cacheid=xorg_cv_cc_flag__Wnested_externs
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -12669,18 +12681,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Wbad-function-cast"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wbad-function-cast" >&5
-$as_echo_n "checking if $CC supports-Wbad-function-cast... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wbad-function-cast" >&5
+$as_echo_n "checking if $CC supports -Wbad-function-cast... " >&6; }
  cacheid=xorg_cv_cc_flag__Wbad_function_cast
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -12787,18 +12799,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Wold-style-definition"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wold-style-definition" >&5
-$as_echo_n "checking if $CC supports-Wold-style-definition... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wold-style-definition" >&5
+$as_echo_n "checking if $CC supports -Wold-style-definition... " >&6; }
  cacheid=xorg_cv_cc_flag__Wold_style_definition
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -12835,6 +12847,55 @@ $as_echo "$supported" >&6; }
  fi
  fi
 
+ if test $found = "no" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
+ CFLAGS="$CFLAGS -Werror=unknown-warning-option"
+ fi
+
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
+ CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
+ fi
+
+ CFLAGS="$CFLAGS -fd"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -fd" >&5
+$as_echo_n "checking if $CC supports -fd... " >&6; }
+ cacheid=xorg_cv_cc_flag__fd
+ if eval \${$cacheid+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+int i;
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  eval $cacheid=yes
+else
+  eval $cacheid=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+
+
+ CFLAGS="$xorg_testset_save_CFLAGS"
+
+ eval supported=\$$cacheid
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5
+$as_echo "$supported" >&6; }
+ if test "$supported" = "yes" ; then
+ BASE_CFLAGS="$BASE_CFLAGS -fd"
+ found="yes"
+ fi
+ fi
+
 
 
 
@@ -12905,18 +12966,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Wdeclaration-after-statement"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wdeclaration-after-statement" >&5
-$as_echo_n "checking if $CC supports-Wdeclaration-after-statement... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wdeclaration-after-statement" >&5
+$as_echo_n "checking if $CC supports -Wdeclaration-after-statement... " >&6; }
  cacheid=xorg_cv_cc_flag__Wdeclaration_after_statement
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -13027,18 +13088,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Wunused"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wunused" >&5
-$as_echo_n "checking if $CC supports-Wunused... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wunused" >&5
+$as_echo_n "checking if $CC supports -Wunused... " >&6; }
  cacheid=xorg_cv_cc_flag__Wunused
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -13145,18 +13206,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Wuninitialized"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wuninitialized" >&5
-$as_echo_n "checking if $CC supports-Wuninitialized... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wuninitialized" >&5
+$as_echo_n "checking if $CC supports -Wuninitialized... " >&6; }
  cacheid=xorg_cv_cc_flag__Wuninitialized
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -13263,18 +13324,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Wshadow"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wshadow" >&5
-$as_echo_n "checking if $CC supports-Wshadow... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wshadow" >&5
+$as_echo_n "checking if $CC supports -Wshadow... " >&6; }
  cacheid=xorg_cv_cc_flag__Wshadow
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -13381,19 +13442,19 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
- CFLAGS="$CFLAGS -Wcast-qual"
+ CFLAGS="$CFLAGS -Wmissing-noreturn"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wcast-qual" >&5
-$as_echo_n "checking if $CC supports-Wcast-qual... " >&6; }
- cacheid=xorg_cv_cc_flag__Wcast_qual
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wmissing-noreturn" >&5
+$as_echo_n "checking if $CC supports -Wmissing-noreturn... " >&6; }
+ cacheid=xorg_cv_cc_flag__Wmissing_noreturn
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
 else
@@ -13424,7 +13485,7 @@ fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5
 $as_echo "$supported" >&6; }
  if test "$supported" = "yes" ; then
- BASE_CFLAGS="$BASE_CFLAGS -Wcast-qual"
+ BASE_CFLAGS="$BASE_CFLAGS -Wmissing-noreturn"
  found="yes"
  fi
  fi
@@ -13499,19 +13560,19 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
- CFLAGS="$CFLAGS -Wmissing-noreturn"
+ CFLAGS="$CFLAGS -Wmissing-format-attribute"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmissing-noreturn" >&5
-$as_echo_n "checking if $CC supports-Wmissing-noreturn... " >&6; }
- cacheid=xorg_cv_cc_flag__Wmissing_noreturn
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wmissing-format-attribute" >&5
+$as_echo_n "checking if $CC supports -Wmissing-format-attribute... " >&6; }
+ cacheid=xorg_cv_cc_flag__Wmissing_format_attribute
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
 else
@@ -13542,12 +13603,13 @@ fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5
 $as_echo "$supported" >&6; }
  if test "$supported" = "yes" ; then
- BASE_CFLAGS="$BASE_CFLAGS -Wmissing-noreturn"
+ BASE_CFLAGS="$BASE_CFLAGS -Wmissing-format-attribute"
  found="yes"
  fi
  fi
 
 
+# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wredundant-decls])
 
 
 
@@ -13617,19 +13679,19 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
- CFLAGS="$CFLAGS -Wmissing-format-attribute"
+ CFLAGS="$CFLAGS -Wlogical-op"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmissing-format-attribute" >&5
-$as_echo_n "checking if $CC supports-Wmissing-format-attribute... " >&6; }
- cacheid=xorg_cv_cc_flag__Wmissing_format_attribute
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wlogical-op" >&5
+$as_echo_n "checking if $CC supports -Wlogical-op... " >&6; }
+ cacheid=xorg_cv_cc_flag__Wlogical_op
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
 else
@@ -13660,7 +13722,7 @@ fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5
 $as_echo "$supported" >&6; }
  if test "$supported" = "yes" ; then
- BASE_CFLAGS="$BASE_CFLAGS -Wmissing-format-attribute"
+ BASE_CFLAGS="$BASE_CFLAGS -Wlogical-op"
  found="yes"
  fi
  fi
@@ -13670,9 +13732,9 @@ $as_echo "$supported" >&6; }
 # These are currently disabled because they are noisy.  They will be enabled
 # in the future once the codebase is sufficiently modernized to silence
 # them.  For now, I don't want them to drown out the other warnings.
-# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wlogical-op])
 # XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wparentheses])
 # XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-align])
+# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-qual])
 
 # Turn some warnings into errors, so we don't accidently get successful builds
 # when there are problems that should be fixed.
@@ -13747,18 +13809,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Werror=implicit"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=implicit" >&5
-$as_echo_n "checking if $CC supports-Werror=implicit... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=implicit" >&5
+$as_echo_n "checking if $CC supports -Werror=implicit... " >&6; }
  cacheid=xorg_cv_cc_flag__Werror_implicit
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -13796,18 +13858,18 @@ $as_echo "$supported" >&6; }
  fi
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED" >&5
-$as_echo_n "checking if $CC supports-errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED" >&5
+$as_echo_n "checking if $CC supports -errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED... " >&6; }
  cacheid=xorg_cv_cc_flag__errwarn_E_NO_EXPLICIT_TYPE_GIVEN__errwarn_E_NO_IMPLICIT_DECL_ALLOWED
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -13914,18 +13976,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Werror=nonnull"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=nonnull" >&5
-$as_echo_n "checking if $CC supports-Werror=nonnull... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=nonnull" >&5
+$as_echo_n "checking if $CC supports -Werror=nonnull... " >&6; }
  cacheid=xorg_cv_cc_flag__Werror_nonnull
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -14032,18 +14094,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Werror=init-self"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=init-self" >&5
-$as_echo_n "checking if $CC supports-Werror=init-self... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=init-self" >&5
+$as_echo_n "checking if $CC supports -Werror=init-self... " >&6; }
  cacheid=xorg_cv_cc_flag__Werror_init_self
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -14150,18 +14212,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Werror=main"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=main" >&5
-$as_echo_n "checking if $CC supports-Werror=main... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=main" >&5
+$as_echo_n "checking if $CC supports -Werror=main... " >&6; }
  cacheid=xorg_cv_cc_flag__Werror_main
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -14268,18 +14330,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Werror=missing-braces"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=missing-braces" >&5
-$as_echo_n "checking if $CC supports-Werror=missing-braces... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=missing-braces" >&5
+$as_echo_n "checking if $CC supports -Werror=missing-braces... " >&6; }
  cacheid=xorg_cv_cc_flag__Werror_missing_braces
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -14386,18 +14448,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Werror=sequence-point"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=sequence-point" >&5
-$as_echo_n "checking if $CC supports-Werror=sequence-point... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=sequence-point" >&5
+$as_echo_n "checking if $CC supports -Werror=sequence-point... " >&6; }
  cacheid=xorg_cv_cc_flag__Werror_sequence_point
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -14504,18 +14566,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Werror=return-type"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=return-type" >&5
-$as_echo_n "checking if $CC supports-Werror=return-type... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=return-type" >&5
+$as_echo_n "checking if $CC supports -Werror=return-type... " >&6; }
  cacheid=xorg_cv_cc_flag__Werror_return_type
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -14553,18 +14615,18 @@ $as_echo "$supported" >&6; }
  fi
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -errwarn=E_FUNC_HAS_NO_RETURN_STMT"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-errwarn=E_FUNC_HAS_NO_RETURN_STMT" >&5
-$as_echo_n "checking if $CC supports-errwarn=E_FUNC_HAS_NO_RETURN_STMT... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -errwarn=E_FUNC_HAS_NO_RETURN_STMT" >&5
+$as_echo_n "checking if $CC supports -errwarn=E_FUNC_HAS_NO_RETURN_STMT... " >&6; }
  cacheid=xorg_cv_cc_flag__errwarn_E_FUNC_HAS_NO_RETURN_STMT
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -14671,18 +14733,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Werror=trigraphs"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=trigraphs" >&5
-$as_echo_n "checking if $CC supports-Werror=trigraphs... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=trigraphs" >&5
+$as_echo_n "checking if $CC supports -Werror=trigraphs... " >&6; }
  cacheid=xorg_cv_cc_flag__Werror_trigraphs
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -14789,18 +14851,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Werror=array-bounds"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=array-bounds" >&5
-$as_echo_n "checking if $CC supports-Werror=array-bounds... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=array-bounds" >&5
+$as_echo_n "checking if $CC supports -Werror=array-bounds... " >&6; }
  cacheid=xorg_cv_cc_flag__Werror_array_bounds
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -14907,18 +14969,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Werror=write-strings"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=write-strings" >&5
-$as_echo_n "checking if $CC supports-Werror=write-strings... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=write-strings" >&5
+$as_echo_n "checking if $CC supports -Werror=write-strings... " >&6; }
  cacheid=xorg_cv_cc_flag__Werror_write_strings
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -15025,18 +15087,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Werror=address"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=address" >&5
-$as_echo_n "checking if $CC supports-Werror=address... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=address" >&5
+$as_echo_n "checking if $CC supports -Werror=address... " >&6; }
  cacheid=xorg_cv_cc_flag__Werror_address
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -15143,18 +15205,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Werror=int-to-pointer-cast"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=int-to-pointer-cast" >&5
-$as_echo_n "checking if $CC supports-Werror=int-to-pointer-cast... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=int-to-pointer-cast" >&5
+$as_echo_n "checking if $CC supports -Werror=int-to-pointer-cast... " >&6; }
  cacheid=xorg_cv_cc_flag__Werror_int_to_pointer_cast
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -15192,18 +15254,18 @@ $as_echo "$supported" >&6; }
  fi
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -errwarn=E_BAD_PTR_INT_COMBINATION"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-errwarn=E_BAD_PTR_INT_COMBINATION" >&5
-$as_echo_n "checking if $CC supports-errwarn=E_BAD_PTR_INT_COMBINATION... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -errwarn=E_BAD_PTR_INT_COMBINATION" >&5
+$as_echo_n "checking if $CC supports -errwarn=E_BAD_PTR_INT_COMBINATION... " >&6; }
  cacheid=xorg_cv_cc_flag__errwarn_E_BAD_PTR_INT_COMBINATION
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -15310,18 +15372,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Werror=pointer-to-int-cast"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=pointer-to-int-cast" >&5
-$as_echo_n "checking if $CC supports-Werror=pointer-to-int-cast... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=pointer-to-int-cast" >&5
+$as_echo_n "checking if $CC supports -Werror=pointer-to-int-cast... " >&6; }
  cacheid=xorg_cv_cc_flag__Werror_pointer_to_int_cast
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -15431,18 +15493,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Wimplicit"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wimplicit" >&5
-$as_echo_n "checking if $CC supports-Wimplicit... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wimplicit" >&5
+$as_echo_n "checking if $CC supports -Wimplicit... " >&6; }
  cacheid=xorg_cv_cc_flag__Wimplicit
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -15549,18 +15611,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Wnonnull"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wnonnull" >&5
-$as_echo_n "checking if $CC supports-Wnonnull... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wnonnull" >&5
+$as_echo_n "checking if $CC supports -Wnonnull... " >&6; }
  cacheid=xorg_cv_cc_flag__Wnonnull
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -15667,18 +15729,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Winit-self"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Winit-self" >&5
-$as_echo_n "checking if $CC supports-Winit-self... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Winit-self" >&5
+$as_echo_n "checking if $CC supports -Winit-self... " >&6; }
  cacheid=xorg_cv_cc_flag__Winit_self
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -15785,18 +15847,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Wmain"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmain" >&5
-$as_echo_n "checking if $CC supports-Wmain... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wmain" >&5
+$as_echo_n "checking if $CC supports -Wmain... " >&6; }
  cacheid=xorg_cv_cc_flag__Wmain
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -15903,18 +15965,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Wmissing-braces"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmissing-braces" >&5
-$as_echo_n "checking if $CC supports-Wmissing-braces... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wmissing-braces" >&5
+$as_echo_n "checking if $CC supports -Wmissing-braces... " >&6; }
  cacheid=xorg_cv_cc_flag__Wmissing_braces
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -16021,18 +16083,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Wsequence-point"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wsequence-point" >&5
-$as_echo_n "checking if $CC supports-Wsequence-point... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wsequence-point" >&5
+$as_echo_n "checking if $CC supports -Wsequence-point... " >&6; }
  cacheid=xorg_cv_cc_flag__Wsequence_point
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -16139,18 +16201,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Wreturn-type"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wreturn-type" >&5
-$as_echo_n "checking if $CC supports-Wreturn-type... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wreturn-type" >&5
+$as_echo_n "checking if $CC supports -Wreturn-type... " >&6; }
  cacheid=xorg_cv_cc_flag__Wreturn_type
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -16257,18 +16319,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Wtrigraphs"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wtrigraphs" >&5
-$as_echo_n "checking if $CC supports-Wtrigraphs... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wtrigraphs" >&5
+$as_echo_n "checking if $CC supports -Wtrigraphs... " >&6; }
  cacheid=xorg_cv_cc_flag__Wtrigraphs
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -16375,18 +16437,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Warray-bounds"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Warray-bounds" >&5
-$as_echo_n "checking if $CC supports-Warray-bounds... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Warray-bounds" >&5
+$as_echo_n "checking if $CC supports -Warray-bounds... " >&6; }
  cacheid=xorg_cv_cc_flag__Warray_bounds
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -16493,18 +16555,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Wwrite-strings"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wwrite-strings" >&5
-$as_echo_n "checking if $CC supports-Wwrite-strings... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wwrite-strings" >&5
+$as_echo_n "checking if $CC supports -Wwrite-strings... " >&6; }
  cacheid=xorg_cv_cc_flag__Wwrite_strings
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -16611,18 +16673,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Waddress"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Waddress" >&5
-$as_echo_n "checking if $CC supports-Waddress... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Waddress" >&5
+$as_echo_n "checking if $CC supports -Waddress... " >&6; }
  cacheid=xorg_cv_cc_flag__Waddress
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -16729,18 +16791,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Wint-to-pointer-cast"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wint-to-pointer-cast" >&5
-$as_echo_n "checking if $CC supports-Wint-to-pointer-cast... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wint-to-pointer-cast" >&5
+$as_echo_n "checking if $CC supports -Wint-to-pointer-cast... " >&6; }
  cacheid=xorg_cv_cc_flag__Wint_to_pointer_cast
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -16847,18 +16909,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Wpointer-to-int-cast"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wpointer-to-int-cast" >&5
-$as_echo_n "checking if $CC supports-Wpointer-to-int-cast... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wpointer-to-int-cast" >&5
+$as_echo_n "checking if $CC supports -Wpointer-to-int-cast... " >&6; }
  cacheid=xorg_cv_cc_flag__Wpointer_to_int_cast
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -16998,18 +17060,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -pedantic"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-pedantic" >&5
-$as_echo_n "checking if $CC supports-pedantic... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -pedantic" >&5
+$as_echo_n "checking if $CC supports -pedantic... " >&6; }
  cacheid=xorg_cv_cc_flag__pedantic
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -17116,18 +17178,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Werror"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror" >&5
-$as_echo_n "checking if $CC supports-Werror... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror" >&5
+$as_echo_n "checking if $CC supports -Werror... " >&6; }
  cacheid=xorg_cv_cc_flag__Werror
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -17165,18 +17227,18 @@ $as_echo "$supported" >&6; }
  fi
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -errwarn"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-errwarn" >&5
-$as_echo_n "checking if $CC supports-errwarn... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -errwarn" >&5
+$as_echo_n "checking if $CC supports -errwarn... " >&6; }
  cacheid=xorg_cv_cc_flag__errwarn
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -17286,18 +17348,18 @@ fi
 found="no"
 
  if test $found = "no" ; then
- if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
+ if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unknown-warning-option"
  fi
 
- if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
+ if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
  CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
  fi
 
  CFLAGS="$CFLAGS -Werror=attributes"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=attributes" >&5
-$as_echo_n "checking if $CC supports-Werror=attributes... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=attributes" >&5
+$as_echo_n "checking if $CC supports -Werror=attributes... " >&6; }
  cacheid=xorg_cv_cc_flag__Werror_attributes
  if eval \${$cacheid+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -17702,46 +17764,46 @@ pkg_failed=no
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XORG" >&5
 $as_echo_n "checking for XORG... " >&6; }
 
-if test -n "$PKG_CONFIG"; then
-    if test -n "$XORG_CFLAGS"; then
-        pkg_cv_XORG_CFLAGS="$XORG_CFLAGS"
-    else
-        if test -n "$PKG_CONFIG" && \
+if test -n "$XORG_CFLAGS"; then
+    pkg_cv_XORG_CFLAGS="$XORG_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
     { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"inputproto >= 2.1.99.3 xorg-server >= 1.12 xproto inputproto \$REQUIRED_MODULES\""; } >&5
   ($PKG_CONFIG --exists --print-errors "inputproto >= 2.1.99.3 xorg-server >= 1.12 xproto inputproto $REQUIRED_MODULES") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_XORG_CFLAGS=`$PKG_CONFIG --cflags "inputproto >= 2.1.99.3 xorg-server >= 1.12 xproto inputproto $REQUIRED_MODULES" 2>/dev/null`
+      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
-    fi
-else
- pkg_failed=untried
+ else
+    pkg_failed=untried
 fi
-if test -n "$PKG_CONFIG"; then
-    if test -n "$XORG_LIBS"; then
-        pkg_cv_XORG_LIBS="$XORG_LIBS"
-    else
-        if test -n "$PKG_CONFIG" && \
+if test -n "$XORG_LIBS"; then
+    pkg_cv_XORG_LIBS="$XORG_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
     { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"inputproto >= 2.1.99.3 xorg-server >= 1.12 xproto inputproto \$REQUIRED_MODULES\""; } >&5
   ($PKG_CONFIG --exists --print-errors "inputproto >= 2.1.99.3 xorg-server >= 1.12 xproto inputproto $REQUIRED_MODULES") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_XORG_LIBS=`$PKG_CONFIG --libs "inputproto >= 2.1.99.3 xorg-server >= 1.12 xproto inputproto $REQUIRED_MODULES" 2>/dev/null`
+      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
-    fi
-else
- pkg_failed=untried
+ else
+    pkg_failed=untried
 fi
 
 
 
 if test $pkg_failed = yes; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
         _pkg_short_errors_supported=yes
@@ -17749,9 +17811,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-        XORG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "inputproto >= 2.1.99.3 xorg-server >= 1.12 xproto inputproto $REQUIRED_MODULES"`
+        XORG_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "inputproto >= 2.1.99.3 xorg-server >= 1.12 xproto inputproto $REQUIRED_MODULES" 2>&1`
         else
-        XORG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "inputproto >= 2.1.99.3 xorg-server >= 1.12 xproto inputproto $REQUIRED_MODULES"`
+        XORG_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "inputproto >= 2.1.99.3 xorg-server >= 1.12 xproto inputproto $REQUIRED_MODULES" 2>&1`
         fi
  # Put the nasty error message in config.log where it belongs
  echo "$XORG_PKG_ERRORS" >&5
@@ -17765,9 +17827,10 @@ installed software in a non-standard pre
 
 Alternatively, you may set the environment variables XORG_CFLAGS
 and XORG_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" "$LINENO" 5
+See the pkg-config man page for more details." "$LINENO" 5
 elif test $pkg_failed = untried; then
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
@@ -17778,14 +17841,14 @@ Alternatively, you may set the environme
 and XORG_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details.
 
-To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
 See \`config.log' for more details" "$LINENO" 5; }
 else
  XORG_CFLAGS=$pkg_cv_XORG_CFLAGS
  XORG_LIBS=$pkg_cv_XORG_LIBS
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
- :
+
 fi
 
 # X Server SDK location is required to install Synaptics header files
@@ -17893,46 +17956,46 @@ pkg_failed=no
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MTDEV" >&5
 $as_echo_n "checking for MTDEV... " >&6; }
 
-if test -n "$PKG_CONFIG"; then
-    if test -n "$MTDEV_CFLAGS"; then
-        pkg_cv_MTDEV_CFLAGS="$MTDEV_CFLAGS"
-    else
-        if test -n "$PKG_CONFIG" && \
+if test -n "$MTDEV_CFLAGS"; then
+    pkg_cv_MTDEV_CFLAGS="$MTDEV_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
     { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mtdev\""; } >&5
   ($PKG_CONFIG --exists --print-errors "mtdev") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_MTDEV_CFLAGS=`$PKG_CONFIG --cflags "mtdev" 2>/dev/null`
+      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
-    fi
-else
- pkg_failed=untried
+ else
+    pkg_failed=untried
 fi
-if test -n "$PKG_CONFIG"; then
-    if test -n "$MTDEV_LIBS"; then
-        pkg_cv_MTDEV_LIBS="$MTDEV_LIBS"
-    else
-        if test -n "$PKG_CONFIG" && \
+if test -n "$MTDEV_LIBS"; then
+    pkg_cv_MTDEV_LIBS="$MTDEV_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
     { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mtdev\""; } >&5
   ($PKG_CONFIG --exists --print-errors "mtdev") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_MTDEV_LIBS=`$PKG_CONFIG --libs "mtdev" 2>/dev/null`
+      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
-    fi
-else
- pkg_failed=untried
+ else
+    pkg_failed=untried
 fi
 
 
 
 if test $pkg_failed = yes; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
         _pkg_short_errors_supported=yes
@@ -17940,9 +18003,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-        MTDEV_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "mtdev"`
+        MTDEV_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "mtdev" 2>&1`
         else
-        MTDEV_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "mtdev"`
+        MTDEV_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "mtdev" 2>&1`
         fi
  # Put the nasty error message in config.log where it belongs
  echo "$MTDEV_PKG_ERRORS" >&5
@@ -17956,9 +18019,10 @@ installed software in a non-standard pre
 
 Alternatively, you may set the environment variables MTDEV_CFLAGS
 and MTDEV_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" "$LINENO" 5
+See the pkg-config man page for more details." "$LINENO" 5
 elif test $pkg_failed = untried; then
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
@@ -17969,14 +18033,14 @@ Alternatively, you may set the environme
 and MTDEV_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details.
 
-To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
 See \`config.log' for more details" "$LINENO" 5; }
 else
  MTDEV_CFLAGS=$pkg_cv_MTDEV_CFLAGS
  MTDEV_LIBS=$pkg_cv_MTDEV_LIBS
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
- :
+
 fi
 fi
 if test "x$BUILD_PSMCOMM" = xyes; then
@@ -18036,46 +18100,46 @@ pkg_failed=no
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XI" >&5
 $as_echo_n "checking for XI... " >&6; }
 
-if test -n "$PKG_CONFIG"; then
-    if test -n "$XI_CFLAGS"; then
-        pkg_cv_XI_CFLAGS="$XI_CFLAGS"
-    else
-        if test -n "$PKG_CONFIG" && \
+if test -n "$XI_CFLAGS"; then
+    pkg_cv_XI_CFLAGS="$XI_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
     { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11 inputproto xi >= 1.2\""; } >&5
   ($PKG_CONFIG --exists --print-errors "x11 inputproto xi >= 1.2") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_XI_CFLAGS=`$PKG_CONFIG --cflags "x11 inputproto xi >= 1.2" 2>/dev/null`
+      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
-    fi
-else
- pkg_failed=untried
+ else
+    pkg_failed=untried
 fi
-if test -n "$PKG_CONFIG"; then
-    if test -n "$XI_LIBS"; then
-        pkg_cv_XI_LIBS="$XI_LIBS"
-    else
-        if test -n "$PKG_CONFIG" && \
+if test -n "$XI_LIBS"; then
+    pkg_cv_XI_LIBS="$XI_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
     { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11 inputproto xi >= 1.2\""; } >&5
   ($PKG_CONFIG --exists --print-errors "x11 inputproto xi >= 1.2") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_XI_LIBS=`$PKG_CONFIG --libs "x11 inputproto xi >= 1.2" 2>/dev/null`
+      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
-    fi
-else
- pkg_failed=untried
+ else
+    pkg_failed=untried
 fi
 
 
 
 if test $pkg_failed = yes; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
         _pkg_short_errors_supported=yes
@@ -18083,9 +18147,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-        XI_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "x11 inputproto xi >= 1.2"`
+        XI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "x11 inputproto xi >= 1.2" 2>&1`
         else
-        XI_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "x11 inputproto xi >= 1.2"`
+        XI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "x11 inputproto xi >= 1.2" 2>&1`
         fi
  # Put the nasty error message in config.log where it belongs
  echo "$XI_PKG_ERRORS" >&5
@@ -18099,9 +18163,10 @@ installed software in a non-standard pre
 
 Alternatively, you may set the environment variables XI_CFLAGS
 and XI_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-" "$LINENO" 5
+See the pkg-config man page for more details." "$LINENO" 5
 elif test $pkg_failed = untried; then
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
@@ -18112,14 +18177,14 @@ Alternatively, you may set the environme
 and XI_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details.
 
-To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
 See \`config.log' for more details" "$LINENO" 5; }
 else
  XI_CFLAGS=$pkg_cv_XI_CFLAGS
  XI_LIBS=$pkg_cv_XI_LIBS
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
- :
+
 fi
 
 # The syndaemon program uses an optional XRecord extension implementation
@@ -18130,46 +18195,46 @@ pkg_failed=no
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XTST" >&5
 $as_echo_n "checking for XTST... " >&6; }
 
-if test -n "$PKG_CONFIG"; then
-    if test -n "$XTST_CFLAGS"; then
-        pkg_cv_XTST_CFLAGS="$XTST_CFLAGS"
-    else
-        if test -n "$PKG_CONFIG" && \
+if test -n "$XTST_CFLAGS"; then
+    pkg_cv_XTST_CFLAGS="$XTST_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
     { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xtst recordproto\""; } >&5
   ($PKG_CONFIG --exists --print-errors "xtst recordproto") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_XTST_CFLAGS=`$PKG_CONFIG --cflags "xtst recordproto" 2>/dev/null`
+      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
-    fi
-else
- pkg_failed=untried
+ else
+    pkg_failed=untried
 fi
-if test -n "$PKG_CONFIG"; then
-    if test -n "$XTST_LIBS"; then
-        pkg_cv_XTST_LIBS="$XTST_LIBS"
-    else
-        if test -n "$PKG_CONFIG" && \
+if test -n "$XTST_LIBS"; then
+    pkg_cv_XTST_LIBS="$XTST_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
     { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xtst recordproto\""; } >&5
   ($PKG_CONFIG --exists --print-errors "xtst recordproto") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_XTST_LIBS=`$PKG_CONFIG --libs "xtst recordproto" 2>/dev/null`
+      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
-    fi
-else
- pkg_failed=untried
+ else
+    pkg_failed=untried
 fi
 
 
 
 if test $pkg_failed = yes; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
         _pkg_short_errors_supported=yes
@@ -18177,17 +18242,17 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-        XTST_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xtst recordproto"`
+        XTST_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "xtst recordproto" 2>&1`
         else
-        XTST_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xtst recordproto"`
+        XTST_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "xtst recordproto" 2>&1`
         fi
  # Put the nasty error message in config.log where it belongs
  echo "$XTST_PKG_ERRORS" >&5
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-                have_libxtst="no"
+ have_libxtst="no"
 elif test $pkg_failed = untried; then
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
  have_libxtst="no"
 else
  XTST_CFLAGS=$pkg_cv_XTST_CFLAGS
@@ -18790,7 +18855,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by xf86-input-synaptics $as_me 1.7.1, which was
+This file was extended by xf86-input-synaptics $as_me 1.7.5, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -18856,7 +18921,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-xf86-input-synaptics config.status 1.7.1
+xf86-input-synaptics config.status 1.7.5
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
Index: configure.ac
===================================================================
RCS file: /cvs/xenocara/driver/xf86-input-synaptics/configure.ac,v
retrieving revision 1.7
diff -u -p -r1.7 configure.ac
--- configure.ac 2 Jun 2013 18:17:24 -0000 1.7
+++ configure.ac 8 May 2014 18:28:32 -0000
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-synaptics],
-        [1.7.1],
+        [1.7.5],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-input-synaptics])
 AC_CONFIG_SRCDIR([Makefile.am])
Index: test-driver
===================================================================
RCS file: test-driver
diff -N test-driver
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ test-driver 8 May 2014 18:28:32 -0000
@@ -0,0 +1,127 @@
+#! /bin/sh
+# test-driver - basic testsuite driver script.
+
+scriptversion=2012-06-27.10; # UTC
+
+# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <[hidden email]> or send patches to
+# <[hidden email]>.
+
+# Make unconditional expansion of undefined variables an error.  This
+# helps a lot in preventing typo-related bugs.
+set -u
+
+usage_error ()
+{
+  echo "$0: $*" >&2
+  print_usage >&2
+  exit 2
+}
+
+print_usage ()
+{
+  cat <<END
+Usage:
+  test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
+              [--expect-failure={yes|no}] [--color-tests={yes|no}]
+              [--enable-hard-errors={yes|no}] [--] TEST-SCRIPT
+The '--test-name', '--log-file' and '--trs-file' options are mandatory.
+END
+}
+
+# TODO: better error handling in option parsing (in particular, ensure
+# TODO: $log_file, $trs_file and $test_name are defined).
+test_name= # Used for reporting.
+log_file=  # Where to save the output of the test script.
+trs_file=  # Where to save the metadata of the test run.
+expect_failure=no
+color_tests=no
+enable_hard_errors=yes
+while test $# -gt 0; do
+  case $1 in
+  --help) print_usage; exit $?;;
+  --version) echo "test-driver $scriptversion"; exit $?;;
+  --test-name) test_name=$2; shift;;
+  --log-file) log_file=$2; shift;;
+  --trs-file) trs_file=$2; shift;;
+  --color-tests) color_tests=$2; shift;;
+  --expect-failure) expect_failure=$2; shift;;
+  --enable-hard-errors) enable_hard_errors=$2; shift;;
+  --) shift; break;;
+  -*) usage_error "invalid option: '$1'";;
+  esac
+  shift
+done
+
+if test $color_tests = yes; then
+  # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
+  red='' # Red.
+  grn='' # Green.
+  lgn='' # Light green.
+  blu='' # Blue.
+  mgn='' # Magenta.
+  std=''     # No color.
+else
+  red= grn= lgn= blu= mgn= std=
+fi
+
+do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
+trap "st=129; $do_exit" 1
+trap "st=130; $do_exit" 2
+trap "st=141; $do_exit" 13
+trap "st=143; $do_exit" 15
+
+# Test script is run here.
+"$@" >$log_file 2>&1
+estatus=$?
+if test $enable_hard_errors = no && test $estatus -eq 99; then
+  estatus=1
+fi
+
+case $estatus:$expect_failure in
+  0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
+  0:*)   col=$grn res=PASS  recheck=no  gcopy=no;;
+  77:*)  col=$blu res=SKIP  recheck=no  gcopy=yes;;
+  99:*)  col=$mgn res=ERROR recheck=yes gcopy=yes;;
+  *:yes) col=$lgn res=XFAIL recheck=no  gcopy=yes;;
+  *:*)   col=$red res=FAIL  recheck=yes gcopy=yes;;
+esac
+
+# Report outcome to console.
+echo "${col}${res}${std}: $test_name"
+
+# Register the test result, and other relevant metadata.
+echo ":test-result: $res" > $trs_file
+echo ":global-test-result: $res" >> $trs_file
+echo ":recheck: $recheck" >> $trs_file
+echo ":copy-in-global-log: $gcopy" >> $trs_file
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
Index: conf/Makefile.in
===================================================================
RCS file: /cvs/xenocara/driver/xf86-input-synaptics/conf/Makefile.in,v
retrieving revision 1.6
diff -u -p -r1.6 Makefile.in
--- conf/Makefile.in 2 Jun 2013 18:17:24 -0000 1.6
+++ conf/Makefile.in 8 May 2014 18:28:32 -0000
@@ -209,6 +209,8 @@ PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
Index: include/Makefile.in
===================================================================
RCS file: /cvs/xenocara/driver/xf86-input-synaptics/include/Makefile.in,v
retrieving revision 1.6
diff -u -p -r1.6 Makefile.in
--- include/Makefile.in 2 Jun 2013 18:17:24 -0000 1.6
+++ include/Makefile.in 8 May 2014 18:28:32 -0000
@@ -209,6 +209,8 @@ PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
Index: include/synaptics-properties.h
===================================================================
RCS file: /cvs/xenocara/driver/xf86-input-synaptics/include/synaptics-properties.h,v
retrieving revision 1.5
diff -u -p -r1.5 synaptics-properties.h
--- include/synaptics-properties.h 2 Jun 2013 18:17:24 -0000 1.5
+++ include/synaptics-properties.h 8 May 2014 18:28:32 -0000
@@ -116,6 +116,9 @@
 #define SYNAPTICS_PROP_CIRCULAR_SCROLLING_TRIGGER "Synaptics Circular Scrolling Trigger"
 
 /* 8 bit (BOOL) */
+#define SYNAPTICS_PROP_CIRCULAR_PAD "Synaptics Circular Pad"
+
+/* 8 bit (BOOL) */
 #define SYNAPTICS_PROP_PALM_DETECT "Synaptics Palm Detection"
 
 /* 32 bit, 2 values, width, z */
Index: man/Makefile.in
===================================================================
RCS file: /cvs/xenocara/driver/xf86-input-synaptics/man/Makefile.in,v
retrieving revision 1.7
diff -u -p -r1.7 Makefile.in
--- man/Makefile.in 2 Jun 2013 18:17:24 -0000 1.7
+++ man/Makefile.in 8 May 2014 18:28:32 -0000
@@ -210,6 +210,8 @@ PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
Index: man/synaptics.man
===================================================================
RCS file: /cvs/xenocara/driver/xf86-input-synaptics/man/synaptics.man,v
retrieving revision 1.5
diff -u -p -r1.5 synaptics.man
--- man/synaptics.man 2 Jun 2013 18:17:24 -0000 1.5
+++ man/synaptics.man 8 May 2014 18:28:33 -0000
@@ -198,6 +198,41 @@ Default: 0.5 percent of the diagonal or
 The minimum vertical HW distance required to generate motion events. See
 \fBHorizHysteresis\fR.
 .TP
+.BI "Option \*qUpDownScrolling\*q \*q" boolean \*q
+If on, the up/down buttons generate button 4/5 events.
+.
+If off, the up button generates a double click and the down button
+generates a button 2 event. This option is only available for touchpads with
+physical scroll buttons.
+Property: "Synaptics Button Scrolling"
+.TP
+.BI "Option \*qLeftRightScrolling\*q \*q" boolean \*q
+If on, the left/right buttons generate button 6/7 events.
+.
+If off, the left/right buttons both generate button 2 events.
+This option is only available for touchpads with physical scroll buttons.
+Property: "Synaptics Button Scrolling"
+.TP
+.BI "Option \*qUpDownScrollRepeat\*q \*q" boolean \*q
+If on, and the up/down buttons are used for scrolling
+(\fBUpDownScrolling\fR), these buttons will send auto-repeating 4/5 events,
+with the delay between repeats determined by \fBScrollButtonRepeat\fR.
+This option is only available for touchpads with physical scroll buttons.
+Property: "Synaptics Button Scrolling Repeat"
+.TP
+.BI "Option \*qLeftRightScrollRepeat\*q \*q" boolean \*q
+If on, and the left/right buttons are used for scrolling
+(\fBLeftRightScrolling\fR), these buttons will send auto-repeating 6/7 events,
+with the delay between repeats determined by \fBScrollButtonRepeat\fR.
+This option is only available for touchpads with physical scroll buttons.
+Property: "Synaptics Button Scrolling Repeat"
+.TP
+.BI "Option \*qScrollButtonRepeat\*q \*q" integer \*q
+The number of milliseconds between repeats of button events 4-7 from the
+up/down/left/right scroll buttons.
+This option is only available for touchpads with physical scroll buttons.
+Property: "Synaptics Button Scrolling Time"
+.TP
 .BI "Option \*qEmulateMidButtonTime\*q \*q" integer \*q
 Maximum time (in milliseconds) for middle button emulation. Property:
 "Synaptics Middle Button Timeout"
@@ -316,6 +351,13 @@ l l.
 .TE
 Property: "Synaptics Circular Scrolling Trigger"
 .TP
+.BI "Option \*qCircularPad\*q \*q" boolean \*q
+.
+Instead of being a rectangle, the edge is the ellipse enclosed by the
+Left/Right/Top/BottomEdge parameters.
+.
+For circular touchpads. Property: "Synaptics Circular Pad"
+.TP
 .BI "Option \*qPalmDetect\*q \*q" boolean \*q
 If palm detection should be enabled.
 .
@@ -543,9 +585,6 @@ effect on scrolling speed.
 Scrolling speed is determined solely from the VertScrollDelta and
 HorizScrollDelta parameters.
 .
-To disable vertical or horizontal scrolling, set VertScrollDelta or
-HorizScrollDelta to zero.
-.
 To invert the direction of vertical or horizontal scrolling, set
 VertScrollDelta or HorizScrollDelta to a negative value.
 .
@@ -733,6 +772,10 @@ FLOAT, 4 values, min, max, accel, <depre
 8 bit (BOOL), 2 values, updown, leftright.
 
 .TP 7
+.BI "Synaptics Button Scrolling Repeat"
+8 bit (BOOL), 2 values, updown, leftright.
+
+.TP 7
 .BI "Synaptics Button Scrolling Time"
 32 bit.
 
@@ -894,17 +937,6 @@ The following options are no longer part
 .TP
 .BI "Option \*qEdgeMotionUseAlways\*q \*q" boolean \*q
 .TP
-.BI "Option \*qUpDownScrolling\*q \*q" boolean \*q
-.TP
-.BI "Option \*qLeftRightScrolling\*q \*q" boolean \*q
-.TP
-.BI "Option \*qUpDownScrollRepeat\*q \*q" boolean \*q
-.TP
-.BI "Option \*qLeftRightScrollRepeat\*q \*q" boolean \*q
-.TP
-.BI "Option \*qScrollButtonRepeat\*q \*q" integer \*q
-.TP
-.BI "Option \*qCircularPad\*q \*q" boolean \*q
 
 .SH "AUTHORS"
 .LP
Index: src/Makefile.in
===================================================================
RCS file: /cvs/xenocara/driver/xf86-input-synaptics/src/Makefile.in,v
retrieving revision 1.6
diff -u -p -r1.6 Makefile.in
--- src/Makefile.in 2 Jun 2013 18:17:24 -0000 1.6
+++ src/Makefile.in 8 May 2014 18:28:33 -0000
@@ -266,6 +266,8 @@ PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
Index: src/eventcomm.c
===================================================================
RCS file: /cvs/xenocara/driver/xf86-input-synaptics/src/eventcomm.c,v
retrieving revision 1.7
diff -u -p -r1.7 eventcomm.c
--- src/eventcomm.c 2 Jun 2013 18:17:24 -0000 1.7
+++ src/eventcomm.c 8 May 2014 18:28:33 -0000
@@ -76,6 +76,7 @@ struct eventcomm_proto_data {
     int cur_slot;
     ValuatorMask **last_mt_vals;
     int num_touches;
+    int *tracking_ids;
 };
 
 struct eventcomm_proto_data *
@@ -98,7 +99,7 @@ last_mt_vals_slot(const SynapticsPrivate
 {
     struct eventcomm_proto_data *proto_data =
         (struct eventcomm_proto_data *) priv->proto_data;
-    int value = proto_data->cur_slot - proto_data->mtdev->caps.slot.minimum;
+    int value = proto_data->cur_slot;
 
     return value < priv->num_slots ? value : -1;
 }
@@ -125,6 +126,9 @@ UninitializeTouch(InputInfoPtr pInfo)
     mtdev_close_delete(proto_data->mtdev);
     proto_data->mtdev = NULL;
     proto_data->num_touches = 0;
+
+    free(proto_data->tracking_ids);
+    proto_data->tracking_ids = NULL;
 }
 
 static void
@@ -156,9 +160,18 @@ InitializeTouch(InputInfoPtr pInfo)
         return;
     }
 
+    proto_data->tracking_ids = calloc(priv->num_slots, sizeof(int));
+    if (!proto_data->tracking_ids) {
+        xf86IDrvMsg(pInfo, X_WARNING, "failed to allocate tracking ID array\n");
+        UninitializeTouch(pInfo);
+        return;
+    }
+
     for (i = 0; i < priv->num_slots; i++) {
         int j;
 
+        proto_data->tracking_ids[i] = -1;
+
         proto_data->last_mt_vals[i] = valuator_mask_new(4 + priv->num_mt_axes);
         if (!proto_data->last_mt_vals[i]) {
             xf86IDrvMsg(pInfo, X_WARNING,
@@ -206,6 +219,7 @@ static Bool
 EventDeviceOffHook(InputInfoPtr pInfo)
 {
     UninitializeTouch(pInfo);
+    SYSCALL(ioctl(pInfo->fd, EVIOCGRAB, (pointer) 0));
 
     return Success;
 }
@@ -554,7 +568,24 @@ EventProcessTouchEvent(InputInfoPtr pInf
         if (hw->slot_state[slot_index] == SLOTSTATE_OPEN_EMPTY)
             hw->slot_state[slot_index] = SLOTSTATE_UPDATE;
         if (ev->code == ABS_MT_TRACKING_ID) {
-            if (ev->value >= 0) {
+            int old_tracking_id = proto_data->tracking_ids[slot_index];
+
+            /* We don't have proper SYN_DROPPED handling in
+               synaptics < 1.8. This is a poor man's version that covers the
+               worst bug we're seeing: touch points starting/stopping during
+               SYN_DROPPED. There can only be one touchpoint per slot,
+               identified by the tracking ID. Make sure that we only ever
+               have a single touch point open per slot.
+             */
+            if (ev->value != -1 && old_tracking_id != -1) {
+                /* Our touch terminated during SYN_DROPPED, now we have a
+                   new touch starting in the same slot but ours is still
+                   open. Do nothing, just continue with the old touch */
+            } else if (ev->value == -1 && old_tracking_id == -1) {
+                /* A new touch started during SYN_DROPPED, now we have that
+                   touch terminating. Do nothing, we don't have that touch
+                   open */
+            } else if (ev->value >= 0) {
                 hw->slot_state[slot_index] = SLOTSTATE_OPEN;
                 proto_data->num_touches++;
                 valuator_mask_copy(hw->mt_mask[slot_index],
@@ -564,6 +595,8 @@ EventProcessTouchEvent(InputInfoPtr pInf
                 hw->slot_state[slot_index] = SLOTSTATE_CLOSE;
                 proto_data->num_touches--;
             }
+
+            proto_data->tracking_ids[slot_index] = ev->value;
         }
         else {
             ValuatorMask *mask = proto_data->last_mt_vals[slot_index];
@@ -807,8 +840,7 @@ event_query_touch(InputInfoPtr pInfo)
         };
 
         if (mtdev->caps.slot.maximum > 0)
-            priv->max_touches = mtdev->caps.slot.maximum -
-                mtdev->caps.slot.minimum + 1;
+            priv->max_touches = mtdev->caps.slot.maximum + 1;
 
         priv->touch_axes = malloc(priv->num_mt_axes *
                                   sizeof(SynapticsTouchAxisRec));
Index: src/properties.c
===================================================================
RCS file: /cvs/xenocara/driver/xf86-input-synaptics/src/properties.c,v
retrieving revision 1.6
diff -u -p -r1.6 properties.c
--- src/properties.c 2 Jun 2013 18:17:24 -0000 1.6
+++ src/properties.c 8 May 2014 18:28:33 -0000
@@ -68,6 +68,9 @@ Atom prop_speed = 0;
 Atom prop_edgemotion_pressure = 0;
 Atom prop_edgemotion_speed = 0;
 Atom prop_edgemotion_always = 0;
+Atom prop_buttonscroll = 0;
+Atom prop_buttonscroll_repeat = 0;
+Atom prop_buttonscroll_time = 0;
 Atom prop_off = 0;
 Atom prop_lockdrags = 0;
 Atom prop_lockdrags_time = 0;
@@ -247,6 +250,22 @@ InitDeviceProperties(InputInfoPtr pInfo)
     fvalues[3] = 0;
     prop_speed = InitFloatAtom(pInfo->dev, SYNAPTICS_PROP_SPEED, 4, fvalues);
 
+    if (priv->has_scrollbuttons) {
+        values[0] = para->updown_button_scrolling;
+        values[1] = para->leftright_button_scrolling;
+        prop_buttonscroll =
+            InitAtom(pInfo->dev, SYNAPTICS_PROP_BUTTONSCROLLING, 8, 2, values);
+
+        values[0] = para->updown_button_repeat;
+        values[1] = para->leftright_button_repeat;
+        prop_buttonscroll_repeat =
+            InitAtom(pInfo->dev, SYNAPTICS_PROP_BUTTONSCROLLING_REPEAT, 8, 2,
+                     values);
+        prop_buttonscroll_time =
+            InitAtom(pInfo->dev, SYNAPTICS_PROP_BUTTONSCROLLING_TIME, 32, 1,
+                     &para->scroll_button_repeat);
+    }
+
     prop_off =
         InitAtom(pInfo->dev, SYNAPTICS_PROP_OFF, 8, 1, &para->touchpad_off);
     prop_lockdrags =
@@ -276,6 +295,9 @@ InitDeviceProperties(InputInfoPtr pInfo)
     prop_circscroll_trigger =
         InitAtom(pInfo->dev, SYNAPTICS_PROP_CIRCULAR_SCROLLING_TRIGGER, 8, 1,
                  &para->circular_trigger);
+    prop_circpad =
+        InitAtom(pInfo->dev, SYNAPTICS_PROP_CIRCULAR_PAD, 8, 1,
+                 &para->circular_pad);
     prop_palm =
         InitAtom(pInfo->dev, SYNAPTICS_PROP_PALM_DETECT, 8, 1,
                  &para->palm_detect);
@@ -518,6 +540,43 @@ SetProperty(DeviceIntPtr dev, Atom prope
         para->max_speed = speed[1];
         para->accl = speed[2];
     }
+    else if (property == prop_buttonscroll) {
+        BOOL *scroll;
+
+        if (!priv->has_scrollbuttons)
+            return BadMatch;
+
+        if (prop->size != 2 || prop->format != 8 || prop->type != XA_INTEGER)
+            return BadMatch;
+
+        scroll = (BOOL *) prop->data;
+        para->updown_button_scrolling = scroll[0];
+        para->leftright_button_scrolling = scroll[1];
+
+    }
+    else if (property == prop_buttonscroll_repeat) {
+        BOOL *repeat;
+
+        if (!priv->has_scrollbuttons)
+            return BadMatch;
+
+        if (prop->size != 2 || prop->format != 8 || prop->type != XA_INTEGER)
+            return BadMatch;
+
+        repeat = (BOOL *) prop->data;
+        para->updown_button_repeat = repeat[0];
+        para->leftright_button_repeat = repeat[1];
+    }
+    else if (property == prop_buttonscroll_time) {
+        if (!priv->has_scrollbuttons)
+            return BadMatch;
+
+        if (prop->size != 1 || prop->format != 32 || prop->type != XA_INTEGER)
+            return BadMatch;
+
+        para->scroll_button_repeat = *(INT32 *) prop->data;
+
+    }
     else if (property == prop_off) {
         CARD8 off;
 
@@ -610,6 +669,12 @@ SetProperty(DeviceIntPtr dev, Atom prope
         para->circular_trigger = trigger;
 
     }
+    else if (property == prop_circpad) {
+        if (prop->size != 1 || prop->format != 8 || prop->type != XA_INTEGER)
+            return BadMatch;
+
+        para->circular_pad = *(BOOL *) prop->data;
+    }
     else if (property == prop_palm) {
         if (prop->size != 1 || prop->format != 8 || prop->type != XA_INTEGER)
             return BadMatch;
@@ -649,6 +714,19 @@ SetProperty(DeviceIntPtr dev, Atom prope
 
         para->press_motion_min_z = press[0];
         para->press_motion_max_z = press[1];
+    }
+    else if (property == prop_pressuremotion_factor) {
+        float *press;
+
+        if (prop->size != 2 || prop->format != 32 || prop->type != float_type)
+            return BadMatch;
+
+        press = (float *) prop->data;
+        if (press[0] > press[1])
+            return BadValue;
+
+        para->press_motion_min_factor = press[0];
+        para->press_motion_max_factor = press[1];
     }
     else if (property == prop_grab) {
         if (prop->size != 1 || prop->format != 8 || prop->type != XA_INTEGER)
Index: src/synaptics.c
===================================================================
RCS file: /cvs/xenocara/driver/xf86-input-synaptics/src/synaptics.c,v
retrieving revision 1.7
diff -u -p -r1.7 synaptics.c
--- src/synaptics.c 2 Jun 2013 18:17:24 -0000 1.7
+++ src/synaptics.c 8 May 2014 18:28:36 -0000
@@ -133,9 +133,11 @@ static int DeviceOff(DeviceIntPtr);
 static int DeviceClose(DeviceIntPtr);
 static Bool QueryHardware(InputInfoPtr);
 static void ReadDevDimensions(InputInfoPtr);
+#ifndef NO_DRIVER_SCALING
 static void ScaleCoordinates(SynapticsPrivate * priv,
                              struct SynapticsHwState *hw);
 static void CalculateScalingCoeffs(SynapticsPrivate * priv);
+#endif
 static void SanitizeDimensions(InputInfoPtr pInfo);
 
 void InitDeviceProperties(InputInfoPtr pInfo);
@@ -670,6 +672,20 @@ set_default_parameters(InputInfoPtr pInf
     pars->scroll_twofinger_horiz =
         xf86SetBoolOption(opts, "HorizTwoFingerScroll", horizTwoFingerScroll);
     pars->touchpad_off = xf86SetIntOption(opts, "TouchpadOff", TOUCHPAD_ON);
+
+    if (priv->has_scrollbuttons) {
+        pars->updown_button_scrolling =
+            xf86SetBoolOption(opts, "UpDownScrolling", TRUE);
+        pars->leftright_button_scrolling =
+            xf86SetBoolOption(opts, "LeftRightScrolling", TRUE);
+        pars->updown_button_repeat =
+            xf86SetBoolOption(opts, "UpDownScrollRepeat", TRUE);
+        pars->leftright_button_repeat =
+            xf86SetBoolOption(opts, "LeftRightScrollRepeat", TRUE);
+    }
+    pars->scroll_button_repeat =
+        xf86SetIntOption(opts, "ScrollButtonRepeat", 100);
+
     pars->locked_drags = xf86SetBoolOption(opts, "LockedDrags", FALSE);
     pars->locked_drag_time = xf86SetIntOption(opts, "LockedDragTimeout", 5000);
     pars->tap_action[RT_TAP] = xf86SetIntOption(opts, "RTCornerButton", 0);
@@ -688,6 +704,7 @@ set_default_parameters(InputInfoPtr pInf
     pars->circular_scrolling =
         xf86SetBoolOption(opts, "CircularScrolling", FALSE);
     pars->circular_trigger = xf86SetIntOption(opts, "CircScrollTrigger", 0);
+    pars->circular_pad = xf86SetBoolOption(opts, "CircularPad", FALSE);
     pars->palm_detect = xf86SetBoolOption(opts, "PalmDetect", FALSE);
     pars->palm_min_width = xf86SetIntOption(opts, "PalmMinWidth", palmMinWidth);
     pars->palm_min_z = xf86SetIntOption(opts, "PalmMinZ", palmMinZ);
@@ -819,6 +836,8 @@ SynapticsPreInit(InputDriverPtr drv, Inp
     xf86ErrorFVerb(6, "port opened successfully\n");
 
     /* initialize variables */
+    priv->repeatButtons = 0;
+    priv->nextRepeat = 0;
     priv->count_packet_finger = 0;
     priv->tap_state = TS_START;
     priv->tap_button = 0;
@@ -832,7 +851,10 @@ SynapticsPreInit(InputDriverPtr drv, Inp
 
     set_default_parameters(pInfo);
 
+#ifndef NO_DRIVER_SCALING
     CalculateScalingCoeffs(priv);
+#endif
+
 
     priv->comm.buffer = XisbNew(pInfo->fd, INPUT_BUFFER_SIZE);
 
@@ -940,8 +962,10 @@ DeviceOn(DeviceIntPtr dev)
     }
 
     if (priv->proto_ops->DeviceOnHook &&
-        !priv->proto_ops->DeviceOnHook(pInfo, &priv->synpara))
+        !priv->proto_ops->DeviceOnHook(pInfo, &priv->synpara)) {
+        xf86CloseSerial(pInfo->fd);
         return !Success;
+    }
 
     priv->comm.buffer = XisbNew(pInfo->fd, INPUT_BUFFER_SIZE);
     if (!priv->comm.buffer) {
@@ -993,6 +1017,7 @@ SynapticsReset(SynapticsPrivate * priv)
     priv->circ_scroll_on = FALSE;
     priv->circ_scroll_vert = FALSE;
     priv->mid_emu_state = MBE_OFF;
+    priv->nextRepeat = 0;
     priv->lastButtons = 0;
     priv->prev_z = 0;
     priv->prevFingers = 0;
@@ -1309,6 +1334,32 @@ DeviceInit(DeviceIntPtr dev)
     return !Success;
 }
 
+/*
+ * Convert from absolute X/Y coordinates to a coordinate system where
+ * -1 corresponds to the left/upper edge and +1 corresponds to the
+ * right/lower edge.
+ */
+static void
+relative_coords(SynapticsPrivate * priv, int x, int y,
+                double *relX, double *relY)
+{
+    int minX = priv->synpara.left_edge;
+    int maxX = priv->synpara.right_edge;
+    int minY = priv->synpara.top_edge;
+    int maxY = priv->synpara.bottom_edge;
+    double xCenter = (minX + maxX) / 2.0;
+    double yCenter = (minY + maxY) / 2.0;
+
+    if ((maxX - xCenter > 0) && (maxY - yCenter > 0)) {
+        *relX = (x - xCenter) / (maxX - xCenter);
+        *relY = (y - yCenter) / (maxY - yCenter);
+    }
+    else {
+        *relX = 0;
+        *relY = 0;
+    }
+}
+
 /* return angle of point relative to center */
 static double
 angle(SynapticsPrivate * priv, int x, int y)
@@ -1333,10 +1384,38 @@ diffa(double a1, double a2)
 }
 
 static enum EdgeType
+circular_edge_detection(SynapticsPrivate * priv, int x, int y)
+{
+    enum EdgeType edge = 0;
+    double relX, relY, relR;
+
+    relative_coords(priv, x, y, &relX, &relY);
+    relR = SQR(relX) + SQR(relY);
+
+    if (relR > 1) {
+        /* we are outside the ellipse enclosed by the edge parameters */
+        if (relX > M_SQRT1_2)
+            edge |= RIGHT_EDGE;
+        else if (relX < -M_SQRT1_2)
+            edge |= LEFT_EDGE;
+
+        if (relY < -M_SQRT1_2)
+            edge |= TOP_EDGE;
+        else if (relY > M_SQRT1_2)
+            edge |= BOTTOM_EDGE;
+    }
+
+    return edge;
+}
+
+static enum EdgeType
 edge_detection(SynapticsPrivate * priv, int x, int y)
 {
     enum EdgeType edge = NO_EDGE;
 
+    if (priv->synpara.circular_pad)
+        return circular_edge_detection(priv, x, y);
+
     if (x > priv->synpara.right_edge)
         edge |= RIGHT_EDGE;
     else if (x < priv->synpara.left_edge)
@@ -2553,6 +2632,46 @@ handle_clickfinger(SynapticsPrivate * pr
     }
 }
 
+/* Adjust the hardware state according to the extra buttons (if the touchpad
+ * has any and not many touchpads do these days). These buttons are up/down
+ * tilt buttons and/or left/right buttons that then map into a specific
+ * function (or scrolling into).
+ */
+static Bool
+adjust_state_from_scrollbuttons(const InputInfoPtr pInfo,
+                                struct SynapticsHwState *hw)
+{
+    SynapticsPrivate *priv = (SynapticsPrivate *) (pInfo->private);
+    SynapticsParameters *para = &priv->synpara;
+    Bool double_click = FALSE;
+
+    if (!para->updown_button_scrolling) {
+        if (hw->down) {         /* map down button to middle button */
+            hw->middle = TRUE;
+        }
+
+        if (hw->up) {           /* up button generates double click */
+            if (!priv->prev_up)
+                double_click = TRUE;
+        }
+        priv->prev_up = hw->up;
+
+        /* reset up/down button events */
+        hw->up = hw->down = FALSE;
+    }
+
+    /* Left/right button scrolling, or middle clicks */
+    if (!para->leftright_button_scrolling) {
+        if (hw->multi[2] || hw->multi[3])
+            hw->middle = TRUE;
+
+        /* reset left/right button events */
+        hw->multi[2] = hw->multi[3] = FALSE;
+    }
+
+    return double_click;
+}
+
 static void
 update_hw_button_state(const InputInfoPtr pInfo, struct SynapticsHwState *hw,
                        struct SynapticsHwState *old, CARD32 now, int *delay)
@@ -2632,6 +2751,66 @@ post_scroll_events(const InputInfoPtr pI
         xf86PostMotionEventM(pInfo->dev, FALSE, priv->scroll_events_mask);
 }
 
+static inline int
+repeat_scrollbuttons(const InputInfoPtr pInfo,
+                     const struct SynapticsHwState *hw,
+                     int buttons, CARD32 now, int delay)
+{
+    SynapticsPrivate *priv = (SynapticsPrivate *) (pInfo->private);
+    SynapticsParameters *para = &priv->synpara;
+    int repeat_delay, timeleft;
+    int rep_buttons = 0;
+
+    if (para->updown_button_repeat)
+        rep_buttons |= (1 << (4 - 1)) | (1 << (5 - 1));
+    if (para->leftright_button_repeat)
+        rep_buttons |= (1 << (6 - 1)) | (1 << (7 - 1));
+
+    /* Handle auto repeat buttons */
+    repeat_delay = clamp(para->scroll_button_repeat, SBR_MIN, SBR_MAX);
+    if (((hw->up || hw->down) && para->updown_button_repeat &&
+         para->updown_button_scrolling) ||
+        ((hw->multi[2] || hw->multi[3]) && para->leftright_button_repeat &&
+         para->leftright_button_scrolling)) {
+        priv->repeatButtons = buttons & rep_buttons;
+        if (!priv->nextRepeat) {
+            priv->nextRepeat = now + repeat_delay * 2;
+        }
+    }
+    else {
+        priv->repeatButtons = 0;
+        priv->nextRepeat = 0;
+    }
+
+    if (priv->repeatButtons) {
+        timeleft = TIME_DIFF(priv->nextRepeat, now);
+        if (timeleft > 0)
+            delay = MIN(delay, timeleft);
+        if (timeleft <= 0) {
+            int change, id;
+
+            change = priv->repeatButtons;
+            while (change) {
+                id = ffs(change);
+                change &= ~(1 << (id - 1));
+                if (id == 4)
+                    priv->scroll.delta_y -= para->scroll_dist_vert;
+                else if (id == 5)
+                    priv->scroll.delta_y += para->scroll_dist_vert;
+                else if (id == 6)
+                    priv->scroll.delta_x -= para->scroll_dist_horiz;
+                else if (id == 7)
+                    priv->scroll.delta_x += para->scroll_dist_horiz;
+            }
+
+            priv->nextRepeat = now + repeat_delay;
+            delay = MIN(delay, repeat_delay);
+        }
+    }
+
+    return delay;
+}
+
 /* Update the open slots and number of active touches */
 static void
 UpdateTouchState(InputInfoPtr pInfo, struct SynapticsHwState *hw)
@@ -2828,6 +3007,8 @@ HandleState(InputInfoPtr pInfo, struct S
 
     /* these two just update hw->left, right, etc. */
     update_hw_button_state(pInfo, hw, priv->old_hw_state, now, &delay);
+    if (priv->has_scrollbuttons)
+        double_click = adjust_state_from_scrollbuttons(pInfo, hw);
 
     /* now we know that these _coordinates_ aren't in the area.
        invalid are: x, y, z, numFingers, fingerWidth
@@ -2866,7 +3047,9 @@ HandleState(InputInfoPtr pInfo, struct S
          * calculations that require unadjusted coordinates, for example edge
          * detection.
          */
+#ifndef NO_DRIVER_SCALING
         ScaleCoordinates(priv, hw);
+#endif
     }
 
     dx = dy = 0;
@@ -2917,6 +3100,9 @@ HandleState(InputInfoPtr pInfo, struct S
                             0, 0);
     }
 
+    if (priv->has_scrollbuttons)
+        delay = repeat_scrollbuttons(pInfo, hw, buttons, now, delay);
+
     /* Process scroll events only if coordinates are
      * in the Synaptics Area
      */
@@ -2990,6 +3176,7 @@ QueryHardware(InputInfoPtr pInfo)
     return TRUE;
 }
 
+#ifndef NO_DRIVER_SCALING
 static void
 ScaleCoordinates(SynapticsPrivate * priv, struct SynapticsHwState *hw)
 {
@@ -3019,3 +3206,4 @@ CalculateScalingCoeffs(SynapticsPrivate
         priv->vert_coeff = 1;
     }
 }
+#endif
Index: src/synapticsstr.h
===================================================================
RCS file: /cvs/xenocara/driver/xf86-input-synaptics/src/synapticsstr.h,v
retrieving revision 1.5
diff -u -p -r1.5 synapticsstr.h
--- src/synapticsstr.h 2 Jun 2013 18:17:24 -0000 1.5
+++ src/synapticsstr.h 8 May 2014 18:28:36 -0000
@@ -28,6 +28,14 @@
 #define LogMessageVerbSigSafe xf86MsgVerb
 #endif
 
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) > 19
+#define NO_DRIVER_SCALING 1
+#elif GET_ABI_MAJOR(ABI_XINPUT_VERSION) == 19 && GET_ABI_MINOR(ABI_XINPUT_VERSION) >= 2
+/* as of 19.2, the server takes device resolution into account when scaling
+   relative events from abs device, so we must not scale in synaptics. */
+#define NO_DRIVER_SCALING 1
+#endif
+
 #ifdef DBG
 #undef DBG
 #endif
@@ -47,6 +55,10 @@
 #define SYNAPTICS_MAX_TOUCHES 10
 #define SYN_MAX_BUTTONS 12      /* Max number of mouse buttons */
 
+/* Minimum and maximum values for scroll_button_repeat */
+#define SBR_MIN 10
+#define SBR_MAX 1000
+
 enum OffState {
     TOUCHPAD_ON = 0,
     TOUCHPAD_OFF = 1,
@@ -160,6 +172,12 @@ typedef struct _SynapticsParameters {
     Bool scroll_twofinger_horiz;        /* Enable/disable horizontal two-finger scrolling */
     double min_speed, max_speed, accl;  /* movement parameters */
 
+    Bool updown_button_scrolling;       /* Up/Down-Button scrolling or middle/double-click */
+    Bool leftright_button_scrolling;    /* Left/right-button scrolling, or two lots of middle button */
+    Bool updown_button_repeat;  /* If up/down button being used to scroll, auto-repeat? */
+    Bool leftright_button_repeat;       /* If left/right button being used to scroll, auto-repeat? */
+    int scroll_button_repeat;   /* time, in milliseconds, between scroll events being
+                                 * sent when holding down scroll buttons */
     int touchpad_off;           /* Switches the touchpad off
                                  * 0 : Not off
                                  * 1 : Off
@@ -172,6 +190,7 @@ typedef struct _SynapticsParameters {
     Bool circular_scrolling;    /* Enable circular scrolling */
     double scroll_dist_circ;    /* Scrolling angle radians */
     int circular_trigger;       /* Trigger area for circular scrolling */
+    Bool circular_pad;          /* Edge has an oval or circular shape */
     Bool palm_detect;           /* Enable Palm Detection */
     int palm_min_width;         /* Palm detection width */
     int palm_min_z;             /* Palm detection depth */
@@ -201,7 +220,7 @@ struct _SynapticsPrivateRec {
 
     const char *device;         /* device node */
     CARD32 timer_time;          /* when timer last fired */
-    OsTimerPtr timer;           /* for tap processing, etc */
+    OsTimerPtr timer;           /* for up/down-button repeat, tap processing, etc */
 
     struct CommData comm;
 
@@ -246,12 +265,16 @@ struct _SynapticsPrivateRec {
                                    False: Generate horizontal events */
     double frac_x, frac_y;      /* absolute -> relative fraction */
     enum MidButtonEmulation mid_emu_state;      /* emulated 3rd button */
+    int repeatButtons;          /* buttons for repeat */
+    int nextRepeat;             /* Time when to trigger next auto repeat event */
     int lastButtons;            /* last state of the buttons */
     int prev_z;                 /* previous z value, for palm detection */
     int prevFingers;            /* previous numFingers, for transition detection */
     int avg_width;              /* weighted average of previous fingerWidth values */
+#ifndef NO_DRIVER_SCALING
     double horiz_coeff;         /* normalization factor for x coordintes */
     double vert_coeff;          /* normalization factor for y coordintes */
+#endif
 
     int minx, maxx, miny, maxy; /* min/max dimensions as detected */
     int minp, maxp, minw, maxw; /* min/max pressure and finger width as detected */
Index: test/Makefile.in
===================================================================
RCS file: /cvs/xenocara/driver/xf86-input-synaptics/test/Makefile.in,v
retrieving revision 1.5
diff -u -p -r1.5 Makefile.in
--- test/Makefile.in 2 Jun 2013 18:17:24 -0000 1.5
+++ test/Makefile.in 8 May 2014 18:28:37 -0000
@@ -203,6 +203,8 @@ PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
Index: tools/Makefile.in
===================================================================
RCS file: /cvs/xenocara/driver/xf86-input-synaptics/tools/Makefile.in,v
retrieving revision 1.6
diff -u -p -r1.6 Makefile.in
--- tools/Makefile.in 2 Jun 2013 18:17:24 -0000 1.6
+++ tools/Makefile.in 8 May 2014 18:28:37 -0000
@@ -218,6 +218,8 @@ PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 RANLIB = @RANLIB@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
Index: tools/synclient.c
===================================================================
RCS file: /cvs/xenocara/driver/xf86-input-synaptics/tools/synclient.c,v
retrieving revision 1.4
diff -u -p -r1.4 synclient.c
--- tools/synclient.c 2 Jun 2013 18:17:24 -0000 1.4
+++ tools/synclient.c 8 May 2014 18:28:37 -0000
@@ -50,6 +50,8 @@
 #endif
 
 #define SYN_MAX_BUTTONS 12
+#define SBR_MIN 10
+#define SBR_MAX 1000
 
 union flong {                   /* Xlibs 64-bit property handling madness */
     long l;
@@ -98,6 +100,11 @@ static struct Parameter params[] = {
     {"MinSpeed",              PT_DOUBLE, 0, 255.0,   SYNAPTICS_PROP_SPEED, 0, /*float */ 0},
     {"MaxSpeed",              PT_DOUBLE, 0, 255.0,   SYNAPTICS_PROP_SPEED, 0, /*float */ 1},
     {"AccelFactor",           PT_DOUBLE, 0, 1.0,   SYNAPTICS_PROP_SPEED, 0, /*float */ 2},
+    {"UpDownScrolling",       PT_BOOL,   0, 1,     SYNAPTICS_PROP_BUTTONSCROLLING,  8, 0},
+    {"LeftRightScrolling",    PT_BOOL,   0, 1,     SYNAPTICS_PROP_BUTTONSCROLLING,  8, 1},
+    {"UpDownScrollRepeat",    PT_BOOL,   0, 1,     SYNAPTICS_PROP_BUTTONSCROLLING_REPEAT,   8, 0},
+    {"LeftRightScrollRepeat", PT_BOOL,   0, 1,     SYNAPTICS_PROP_BUTTONSCROLLING_REPEAT,   8, 1},
+    {"ScrollButtonRepeat",    PT_INT,    SBR_MIN , SBR_MAX, SYNAPTICS_PROP_BUTTONSCROLLING_TIME, 32, 0},
     {"TouchpadOff",           PT_INT,    0, 2,     SYNAPTICS_PROP_OFF, 8, 0},
     {"LockedDrags",           PT_BOOL,   0, 1,     SYNAPTICS_PROP_LOCKED_DRAGS, 8, 0},
     {"LockedDragTimeout",     PT_INT,    0, 30000, SYNAPTICS_PROP_LOCKED_DRAGS_TIMEOUT, 32, 0},
@@ -114,6 +121,7 @@ static struct Parameter params[] = {
     {"CircularScrolling",     PT_BOOL,   0, 1,     SYNAPTICS_PROP_CIRCULAR_SCROLLING, 8, 0},
     {"CircScrollDelta",       PT_DOUBLE, .01, 3,   SYNAPTICS_PROP_CIRCULAR_SCROLLING_DIST, 0 /* float */, 0},
     {"CircScrollTrigger",     PT_INT,    0, 8,     SYNAPTICS_PROP_CIRCULAR_SCROLLING_TRIGGER, 8, 0},
+    {"CircularPad",           PT_BOOL,   0, 1,     SYNAPTICS_PROP_CIRCULAR_PAD, 8, 0},
     {"PalmDetect",            PT_BOOL,   0, 1,     SYNAPTICS_PROP_PALM_DETECT, 8, 0},
     {"PalmMinWidth",          PT_INT,    0, 15,    SYNAPTICS_PROP_PALM_DIMENSIONS, 32, 0},
     {"PalmMinZ",              PT_INT,    0, 255,   SYNAPTICS_PROP_PALM_DIMENSIONS, 32, 1},

Reply | Threaded
Open this post in threaded view
|

Re: UPDATE: xf86-input-synaptics 1.7.5

Matthieu Herrb
On Fri, May 09, 2014 at 12:38:00AM +0600, Alexandr Shadchin wrote:
> Hi,
>
> This diff updates xf86-input-synaptics to the latest release 1.7.5.
>
> Comments ? OK ?

Ok.  I've 1.7.6rc1 in my tree for the clickpad on my VAIO but I'll
let you merge 1.7.6 when it's released.

>
> --
> Alexandr Shadchin
>
> Index: ChangeLog
> ===================================================================
> RCS file: /cvs/xenocara/driver/xf86-input-synaptics/ChangeLog,v
> retrieving revision 1.6
> diff -u -p -r1.6 ChangeLog
> --- ChangeLog 2 Jun 2013 18:17:24 -0000 1.6
> +++ ChangeLog 8 May 2014 18:28:24 -0000
> @@ -1,3 +1,194 @@
> +commit baca0fde5958d9dc17a9b13372cc8819170e2f74
> +Author: Peter Hutterer <[hidden email]>
> +Date:   Tue Apr 29 14:27:30 2014 +1000
> +
> +    synaptics 1.7.5
> +    
> +    Signed-off-by: Peter Hutterer <[hidden email]>
> +
> +commit bbaf4d646ebf4393a1ee0eb9bcc569054ed878f9
> +Author: Peter Hutterer <[hidden email]>
> +Date:   Thu Mar 20 11:51:17 2014 +1000
> +
> +    Avoid erroneously handling two touchpoints in the same slot
> +    
> +    If a slot's ABS_MT_TRACKING_ID event was received during SYN_DROPPED, the
> +    driver isn't aware that a touchpoint has started or ended in that slot. When
> +    the next ABS_MT_TRACKING_ID event arrives, the driver would unconditionally
> +    close or open a new touchpoint. This could lead to two or more touchpoints
> +    being opened in the same slot, the first of which is never terminated.
> +    Or it could lead to a touchpoint being terminated that was never opened.
> +    
> +    The event sequences that trigger this are:
> +        ABS_MT_TRACKING_ID 83
> +        ABS_MT_TRACKING_ID -1
> +        SYN_DROPPED             // new touchpoint started here
> +        ABS_MT_TRACKING_ID -1
> +    
> +    and
> +    
> +        ABS_MT_TRACKING_ID 83
> +        SYN_DROPPED             // touchpoint ended here
> +        ABS_MT_TRACKING_ID 84
> +        ABS_MT_TRACKING_ID -1
> +    
> +    We don't properly handle SYN_DROPPED, but we can avoid this by only starting a
> +    new touchpoint when we transition between -1 and a valid tracking ID.
> +    
> +    Signed-off-by: Peter Hutterer <[hidden email]>
> +
> +commit a21b3bd602b31ee995b391a7b917282e7b0a1c33
> +Author: Peter Hutterer <[hidden email]>
> +Date:   Thu Mar 20 10:58:53 2014 +1000
> +
> +    eventcomm: drop assumption of non-zero slot offset
> +    
> +    The kernel guarantees this is always 0
> +    
> +    Signed-off-by: Peter Hutterer <[hidden email]>
> +
> +commit 91cc1e82143b939bfb4fce97429b07105333e146
> +Author: Peter Hutterer <[hidden email]>
> +Date:   Mon Mar 10 16:42:34 2014 +1000
> +
> +    eventcomm: drop calculation of slot offset
> +    
> +    The kernel guarantees slots start at 0
> +    
> +    Signed-off-by: Peter Hutterer <[hidden email]>
> +    Reviewed-by: Hans de Goede <[hidden email]>
> +    Reviewed-by: Benjamin Tissoires <[hidden email]>
> +    (cherry picked from commit 5b7e1726369d4973859996f225bec743c2e21288)
> +
> +commit 8a5533aaa7e6e57bca7674de4cd25b3a18217d44
> +Author: Peter Hutterer <[hidden email]>
> +Date:   Wed Mar 12 09:42:38 2014 +1000
> +
> +    synaptics 1.7.4
> +    
> +    Signed-off-by: Peter Hutterer <[hidden email]>
> +
> +commit c189854a688465c820d5ef5767e00b69394a1601
> +Author: Keith Packard <[hidden email]>
> +Date:   Sat Feb 22 01:44:37 2014 -0800
> +
> +    Close device if DeviceOnHook fails
> +    
> +    Signed-off-by: Keith Packard <[hidden email]>
> +    Signed-off-by: Peter Hutterer <[hidden email]>
> +    (cherry picked from commit 22fe8bdc6668e78853768c62f4d1331114c7eca0)
> +
> +commit 503082bf17dfc4cb3d4b794ea514ac6f413c07f2
> +Author: Peter Hutterer <[hidden email]>
> +Date:   Tue Feb 18 10:14:37 2014 +1000
> +
> +    man: setting scroll deltas to 0 doesn't work (#75074)
> +    
> +    6d47d33 disallows a zero value for horizontal/vertical scroll deltas but the
> +    man page wasn't updated. We've added separate toggles to enable/disable
> +    scrolling a few years ago, setting the distance to 0 is not recommended.
> +    
> +    X.Org Bug 75074 <http://bugs.freedesktop.org/show_bug.cgi?id=75074>
> +    
> +    Signed-off-by: Peter Hutterer <[hidden email]>
> +    (cherry picked from commit 2ea76fad6545a712713de1a09965158805e83c55)
> +
> +commit 0b70c76eab57822526585bbd11a1408bd115f26b
> +Author: Peter Hutterer <[hidden email]>
> +Date:   Thu Feb 13 14:55:12 2014 +1000
> +
> +    Revert "Drop circular pad support"
> +    
> +    This reverts commit 3b02e7fd81da4b100fb9ac32378f6d50f54cf0e2.
> +    
> +    Signed-off-by: Peter Hutterer <[hidden email]>
> +    
> +    Conflicts:
> +     man/synaptics.man
> +     src/synaptics.c
> +    
> +    Acked-by: Daniel Stone <[hidden email]>
> +    (cherry picked from commit 4f543ce1d6ae9ca11086a3009d149505590584a8)
> +
> +commit 1bd4ca3b5af6e5ee98c7d7f153fd4ee643c29e1a
> +Author: Peter Hutterer <[hidden email]>
> +Date:   Fri Jan 17 08:24:35 2014 +1000
> +
> +    Revert "Purge scrollbuttons (repeat)"
> +    
> +    This reverts commit 0903d99ada1755f11a2a5cbf89a345de896e18ec.
> +    
> +    Scroll buttons are still present in some modern devices, e.g. the Fujitsu
> +    Lifebook E782 and others in the series.
> +    
> +    Conflicts:
> +     include/synaptics.h
> +     man/synaptics.man
> +     src/synaptics.c
> +    
> +    (cherry picked from commit e0069c154440305ece6def92a9813a9f8004b2fb)
> +
> +commit 90d93891be0dcc55d87c349ab438144ead818402
> +Author: Peter Hutterer <[hidden email]>
> +Date:   Mon Jan 13 15:14:06 2014 +1000
> +
> +    synaptics 1.7.3
> +    
> +    Signed-off-by: Peter Hutterer <[hidden email]>
> +
> +commit b227ca373de79fe6852ac09e71465c048790cd5b
> +Author: Peter Hutterer <[hidden email]>
> +Date:   Fri Jan 3 11:23:22 2014 +1000
> +
> +    Fix ABI detection for in-driver scaling
> +    
> +    Signed-off-by: Peter Hutterer <[hidden email]>
> +    (cherry picked from commit 49fe70e99d1b0932ab915824c78f952a0fdb3ee7)
> +
> +commit 88d926d12a1f5c06ee2825de5bc4b2222ec29c78
> +Author: Peter Hutterer <[hidden email]>
> +Date:   Mon Dec 9 11:28:23 2013 +1000
> +
> +    synaptics 1.7.2
> +    
> +    Signed-off-by: Peter Hutterer <[hidden email]>
> +
> +commit 61243ada3e1e10f6d32a899a6cc595efa244eb25
> +Author: Peter Hutterer <[hidden email]>
> +Date:   Wed Dec 4 07:58:26 2013 +1000
> +
> +    eventcomm: ungrab the device on DeviceOff
> +    
> +    For symmetry, the kernel should ungrab when we close the fd.
> +    
> +    Signed-off-by: Peter Hutterer <[hidden email]>
> +    
> +    [modified for the 1.7 branch which isn't using libevdev yet]
> +    
> +    (cherry picked from commit 5d391e352f4e502ada6444a7ce860683e3480fbf)
> +
> +commit 09ac39309fbee01aa047dab1b0f577dc2571cdd1
> +Author: Peter Hutterer <[hidden email]>
> +Date:   Thu Dec 5 09:31:11 2013 +1000
> +
> +    Add missing property handler for the pressure motion factor
> +    
> +    Signed-off-by: Peter Hutterer <[hidden email]>
> +    (cherry picked from commit 29318c1d94510cfb6d5d712e912af111f99edb42)
> +
> +commit f4ddbde165843924195b08551d7d6d6200c44b23
> +Author: Peter Hutterer <[hidden email]>
> +Date:   Fri Jul 19 11:08:43 2013 +1000
> +
> +    Disable driver scaling for input ABI 19.2
> +    
> +    For absolute devices in relative mode, i.e. touchpads, the server now takes
> +    device resolution into account. Doing so means that the driver mustn't
> +    scale, so we deactivate those bits in the driver.
> +    
> +    Signed-off-by: Peter Hutterer <[hidden email]>
> +    (cherry picked from commit 0fb59b3487d57523a03f078a2061e2ea0cacbc7c)
> +
>  commit 96cf04dce19e7c90bc05b8b3b192b5bfb97381d2
>  Author: Peter Hutterer <[hidden email]>
>  Date:   Mon May 13 10:03:48 2013 +1000
> Index: Makefile.in
> ===================================================================
> RCS file: /cvs/xenocara/driver/xf86-input-synaptics/Makefile.in,v
> retrieving revision 1.7
> diff -u -p -r1.7 Makefile.in
> --- Makefile.in 2 Jun 2013 18:17:24 -0000 1.7
> +++ Makefile.in 8 May 2014 18:28:24 -0000
> @@ -269,6 +269,8 @@ PACKAGE_URL = @PACKAGE_URL@
>  PACKAGE_VERSION = @PACKAGE_VERSION@
>  PATH_SEPARATOR = @PATH_SEPARATOR@
>  PKG_CONFIG = @PKG_CONFIG@
> +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
> +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
>  RANLIB = @RANLIB@
>  SED = @SED@
>  SET_MAKE = @SET_MAKE@
> Index: aclocal.m4
> ===================================================================
> RCS file: /cvs/xenocara/driver/xf86-input-synaptics/aclocal.m4,v
> retrieving revision 1.5
> diff -u -p -r1.5 aclocal.m4
> --- aclocal.m4 2 Jun 2013 18:17:24 -0000 1.5
> +++ aclocal.m4 8 May 2014 18:28:28 -0000
> @@ -8607,6 +8607,7 @@ m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT
>  m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
>  
>  # pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
> +# serial 1 (pkg-config-0.24)
>  #
>  # Copyright © 2004 Scott James Remnant <[hidden email]>.
>  #
> @@ -8633,8 +8634,12 @@ m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_L
>  # ----------------------------------
>  AC_DEFUN([PKG_PROG_PKG_CONFIG],
>  [m4_pattern_forbid([^_?PKG_[A-Z_]+$])
> -m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
> -AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
> +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
> +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
> +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
> +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
> +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
> +
>  if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
>   AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
>  fi
> @@ -8647,7 +8652,6 @@ if test -n "$PKG_CONFIG"; then
>   AC_MSG_RESULT([no])
>   PKG_CONFIG=""
>   fi
> -
>  fi[]dnl
>  ])# PKG_PROG_PKG_CONFIG
>  
> @@ -8656,34 +8660,32 @@ fi[]dnl
>  # Check to see whether a particular set of modules exists.  Similar
>  # to PKG_CHECK_MODULES(), but does not set variables or print errors.
>  #
> -#
> -# Similar to PKG_CHECK_MODULES, make sure that the first instance of
> -# this or PKG_CHECK_MODULES is called, or make sure to call
> -# PKG_CHECK_EXISTS manually
> +# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
> +# only at the first occurence in configure.ac, so if the first place
> +# it's called might be skipped (such as if it is within an "if", you
> +# have to call PKG_CHECK_EXISTS manually
>  # --------------------------------------------------------------
>  AC_DEFUN([PKG_CHECK_EXISTS],
>  [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
>  if test -n "$PKG_CONFIG" && \
>      AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
> -  m4_ifval([$2], [$2], [:])
> +  m4_default([$2], [:])
>  m4_ifvaln([$3], [else
>    $3])dnl
>  fi])
>  
> -
>  # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
>  # ---------------------------------------------
>  m4_define([_PKG_CONFIG],
> -[if test -n "$PKG_CONFIG"; then
> -    if test -n "$$1"; then
> -        pkg_cv_[]$1="$$1"
> -    else
> -        PKG_CHECK_EXISTS([$3],
> -                         [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
> - [pkg_failed=yes])
> -    fi
> -else
> - pkg_failed=untried
> +[if test -n "$$1"; then
> +    pkg_cv_[]$1="$$1"
> + elif test -n "$PKG_CONFIG"; then
> +    PKG_CHECK_EXISTS([$3],
> +                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
> +      test "x$?" != "x0" && pkg_failed=yes ],
> +     [pkg_failed=yes])
> + else
> +    pkg_failed=untried
>  fi[]dnl
>  ])# _PKG_CONFIG
>  
> @@ -8725,16 +8727,17 @@ and $1[]_LIBS to avoid the need to call
>  See the pkg-config man page for more details.])
>  
>  if test $pkg_failed = yes; then
> +   AC_MSG_RESULT([no])
>          _PKG_SHORT_ERRORS_SUPPORTED
>          if test $_pkg_short_errors_supported = yes; then
> -        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"`
> +        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
>          else
> -        $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
> +        $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
>          fi
>   # Put the nasty error message in config.log where it belongs
>   echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
>  
> - ifelse([$4], , [AC_MSG_ERROR(dnl
> + m4_default([$4], [AC_MSG_ERROR(
>  [Package requirements ($2) were not met:
>  
>  $$1_PKG_ERRORS
> @@ -8742,28 +8745,67 @@ $$1_PKG_ERRORS
>  Consider adjusting the PKG_CONFIG_PATH environment variable if you
>  installed software in a non-standard prefix.
>  
> -_PKG_TEXT
> -])],
> - [AC_MSG_RESULT([no])
> -                $4])
> +_PKG_TEXT])[]dnl
> +        ])
>  elif test $pkg_failed = untried; then
> - ifelse([$4], , [AC_MSG_FAILURE(dnl
> +     AC_MSG_RESULT([no])
> + m4_default([$4], [AC_MSG_FAILURE(
>  [The pkg-config script could not be found or is too old.  Make sure it
>  is in your PATH or set the PKG_CONFIG environment variable to the full
>  path to pkg-config.
>  
>  _PKG_TEXT
>  
> -To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.])],
> - [$4])
> +To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
> +        ])
>  else
>   $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
>   $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
>          AC_MSG_RESULT([yes])
> - ifelse([$3], , :, [$3])
> + $3
>  fi[]dnl
>  ])# PKG_CHECK_MODULES
>  
> +
> +# PKG_INSTALLDIR(DIRECTORY)
> +# -------------------------
> +# Substitutes the variable pkgconfigdir as the location where a module
> +# should install pkg-config .pc files. By default the directory is
> +# $libdir/pkgconfig, but the default can be changed by passing
> +# DIRECTORY. The user can override through the --with-pkgconfigdir
> +# parameter.
> +AC_DEFUN([PKG_INSTALLDIR],
> +[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
> +m4_pushdef([pkg_description],
> +    [pkg-config installation directory @<:@]pkg_default[@:>@])
> +AC_ARG_WITH([pkgconfigdir],
> +    [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
> +    [with_pkgconfigdir=]pkg_default)
> +AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
> +m4_popdef([pkg_default])
> +m4_popdef([pkg_description])
> +]) dnl PKG_INSTALLDIR
> +
> +
> +# PKG_NOARCH_INSTALLDIR(DIRECTORY)
> +# -------------------------
> +# Substitutes the variable noarch_pkgconfigdir as the location where a
> +# module should install arch-independent pkg-config .pc files. By
> +# default the directory is $datadir/pkgconfig, but the default can be
> +# changed by passing DIRECTORY. The user can override through the
> +# --with-noarch-pkgconfigdir parameter.
> +AC_DEFUN([PKG_NOARCH_INSTALLDIR],
> +[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
> +m4_pushdef([pkg_description],
> +    [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
> +AC_ARG_WITH([noarch-pkgconfigdir],
> +    [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
> +    [with_noarch_pkgconfigdir=]pkg_default)
> +AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
> +m4_popdef([pkg_default])
> +m4_popdef([pkg_description])
> +]) dnl PKG_NOARCH_INSTALLDIR
> +
>  # Copyright (C) 2002-2012 Free Software Foundation, Inc.
>  #
>  # This file is free software; the Free Software Foundation
> @@ -9788,7 +9830,7 @@ AC_SUBST([am__untar])
>  dnl xorg-macros.m4.  Generated from xorg-macros.m4.in xorgversion.m4 by configure.
>  dnl
>  dnl Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
> -dnl
> +dnl
>  dnl Permission is hereby granted, free of charge, to any person obtaining a
>  dnl copy of this software and associated documentation files (the "Software"),
>  dnl to deal in the Software without restriction, including without limitation
> @@ -9821,10 +9863,10 @@ dnl DEALINGS IN THE SOFTWARE.
>  #     [m4_fatal([must install xorg-macros 1.1 or later before running autoconf/autogen])])
>  #
>  #
> -# See the "minimum version" comment for each macro you use to see what
> +# See the "minimum version" comment for each macro you use to see what
>  # version you require.
>  m4_defun([XORG_MACROS_VERSION],[
> -m4_define([vers_have], [1.16.2])
> +m4_define([vers_have], [1.19.0])
>  m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.])))
>  m4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.])))
>  m4_if(m4_cmp(maj_have, maj_needed), 0,,
> @@ -9844,7 +9886,7 @@ m4_undefine([maj_needed])
>  # such as man pages and config files
>  AC_DEFUN([XORG_PROG_RAWCPP],[
>  AC_REQUIRE([AC_PROG_CPP])
> -AC_PATH_PROGS(RAWCPP, [cpp], [${CPP}],
> +AC_PATH_PROGS(RAWCPP, [cpp], [${CPP}],
>     [$PATH:/bin:/usr/bin:/usr/lib:/usr/libexec:/usr/ccs/lib:/usr/ccs/lbin:/lib])
>  
>  # Check for flag to avoid builtin definitions - assumes unix is predefined,
> @@ -9874,6 +9916,7 @@ if test `${RAWCPP} < conftest.$ac_ext |
>   AC_MSG_RESULT([no])
>  else
>   if test `${RAWCPP} -traditional < conftest.$ac_ext | grep -c 'preserve   \"'` -eq 1 ; then
> + TRADITIONALCPPFLAGS="-traditional"
>   RAWCPPFLAGS="${RAWCPPFLAGS} -traditional"
>   AC_MSG_RESULT([yes])
>   else
> @@ -9882,6 +9925,7 @@ else
>  fi
>  rm -f conftest.$ac_ext
>  AC_SUBST(RAWCPPFLAGS)
> +AC_SUBST(TRADITIONALCPPFLAGS)
>  ]) # XORG_PROG_RAWCPP
>  
>  # XORG_MANPAGE_SECTIONS()
> @@ -10406,9 +10450,10 @@ AM_CONDITIONAL([HAVE_ASCIIDOC], [test "$
>  ]) # XORG_WITH_ASCIIDOC
>  
>  # XORG_WITH_DOXYGEN([MIN-VERSION], [DEFAULT])
> -# --------------------------------
> +# -------------------------------------------
>  # Minimum version: 1.5.0
>  # Minimum version for optional DEFAULT argument: 1.11.0
> +# Minimum version for optional DOT checking: 1.18.0
>  #
>  # Documentation tools are not always available on all platforms and sometimes
>  # not at the appropriate level. This macro enables a module to test for the
> @@ -10428,6 +10473,7 @@ AM_CONDITIONAL([HAVE_ASCIIDOC], [test "$
>  #
>  AC_DEFUN([XORG_WITH_DOXYGEN],[
>  AC_ARG_VAR([DOXYGEN], [Path to doxygen command])
> +AC_ARG_VAR([DOT], [Path to the dot graphics utility])
>  m4_define([_defopt], m4_default([$2], [auto]))
>  AC_ARG_WITH(doxygen,
>   AS_HELP_STRING([--with-doxygen],
> @@ -10471,6 +10517,20 @@ m4_ifval([$1],
>              AC_MSG_ERROR([doxygen version $doxygen_version found, but $1 needed])
>          fi])
>  fi])
> +
> +dnl Check for DOT if we have doxygen. The caller decides if it is mandatory
> +dnl HAVE_DOT is a variable that can be used in your doxygen.in config file:
> +dnl HAVE_DOT = @HAVE_DOT@
> +HAVE_DOT=no
> +if test "x$have_doxygen" = "xyes"; then
> +  AC_PATH_PROG([DOT], [dot])
> +    if test "x$DOT" != "x"; then
> +      HAVE_DOT=yes
> +    fi
> +fi
> +
> +AC_SUBST([HAVE_DOT])
> +AM_CONDITIONAL([HAVE_DOT], [test "$HAVE_DOT" = "yes"])
>  AM_CONDITIONAL([HAVE_DOXYGEN], [test "$have_doxygen" = yes])
>  ]) # XORG_WITH_DOXYGEN
>  
> @@ -10653,6 +10713,29 @@ fi])
>  AM_CONDITIONAL([HAVE_FOP], [test "$have_fop" = yes])
>  ]) # XORG_WITH_FOP
>  
> +# XORG_WITH_M4([MIN-VERSION])
> +# ---------------------------
> +# Minimum version: 1.19.0
> +#
> +# This macro attempts to locate an m4 macro processor which supports
> +# -I option and is only useful for modules relying on M4 in order to
> +# expand macros in source code files.
> +#
> +# Interface to module:
> +# M4: returns the path of the m4 program found
> +# returns the path set by the user in the environment
> +#
> +AC_DEFUN([XORG_WITH_M4], [
> +AC_CACHE_CHECK([for m4 that supports -I option], [ac_cv_path_M4],
> +   [AC_PATH_PROGS_FEATURE_CHECK([M4], [m4 gm4],
> +       [[$ac_path_M4 -I. /dev/null > /dev/null 2>&1 && \
> +         ac_cv_path_M4=$ac_path_M4 ac_path_M4_found=:]],
> +   [AC_MSG_ERROR([could not find m4 that supports -I option])],
> +   [$PATH:/usr/gnu/bin])])
> +
> +AC_SUBST([M4], [$ac_cv_path_M4])
> +]) # XORG_WITH_M4
> +
>  # XORG_WITH_PS2PDF([DEFAULT])
>  # ----------------
>  # Minimum version: 1.6.0
> @@ -11107,7 +11190,8 @@ AC_ARG_ENABLE(malloc0returnsnull,
>  
>  AC_MSG_CHECKING([whether malloc(0) returns NULL])
>  if test "x$MALLOC_ZERO_RETURNS_NULL" = xauto; then
> - AC_RUN_IFELSE([AC_LANG_PROGRAM([
> +AC_CACHE_VAL([xorg_cv_malloc0_returns_null],
> + [AC_RUN_IFELSE([AC_LANG_PROGRAM([
>  #include <stdlib.h>
>  ],[
>      char *m0, *r0, *c0, *p;
> @@ -11117,9 +11201,9 @@ if test "x$MALLOC_ZERO_RETURNS_NULL" = x
>      c0 = calloc(0,10);
>      exit((m0 == 0 || r0 == 0 || c0 == 0) ? 0 : 1);
>  ])],
> - [MALLOC_ZERO_RETURNS_NULL=yes],
> - [MALLOC_ZERO_RETURNS_NULL=no],
> - [MALLOC_ZERO_RETURNS_NULL=yes])
> + [xorg_cv_malloc0_returns_null=yes],
> + [xorg_cv_malloc0_returns_null=no])])
> +MALLOC_ZERO_RETURNS_NULL=$xorg_cv_malloc0_returns_null
>  fi
>  AC_MSG_RESULT([$MALLOC_ZERO_RETURNS_NULL])
>  
> @@ -11330,18 +11414,18 @@ fi
>  found="no"
>  m4_foreach([flag], m4_cdr($@), [
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_]CACHE_PREFIX[_unknown_warning_option" = "xyes" ; then
>   PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_]CACHE_PREFIX[_unused_command_line_argument" = "xyes" ; then
>   PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unused-command-line-argument"
>   fi
>  
>   PREFIX[FLAGS]="$PREFIX[FLAGS] ]flag["
>  
>  dnl Some hackery here since AC_CACHE_VAL can't handle a non-literal varname
> - AC_MSG_CHECKING([if ]COMPILER[ supports]flag[])
> + AC_MSG_CHECKING([if ]COMPILER[ supports ]flag[])
>   cacheid=AS_TR_SH([xorg_cv_]CACHE_PREFIX[_flag_]flag[])
>   AC_CACHE_VAL($cacheid,
>       [AC_LINK_IFELSE([AC_LANG_PROGRAM([int i;])],
> @@ -11408,7 +11492,7 @@ AC_LANG_CASE(
>   XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-prototypes])
>   XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wnested-externs])
>   XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wbad-function-cast])
> - XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wold-style-definition])
> + XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wold-style-definition], [-fd])
>   XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wdeclaration-after-statement])
>   ]
>  )
> @@ -11417,16 +11501,17 @@ AC_LANG_CASE(
>  XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wunused])
>  XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wuninitialized])
>  XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wshadow])
> -XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-qual])
>  XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-noreturn])
>  XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-format-attribute])
> +# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wredundant-decls])
> +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wlogical-op])
>  
>  # These are currently disabled because they are noisy.  They will be enabled
>  # in the future once the codebase is sufficiently modernized to silence
>  # them.  For now, I don't want them to drown out the other warnings.
> -# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wlogical-op])
>  # XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wparentheses])
>  # XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-align])
> +# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-qual])
>  
>  # Turn some warnings into errors, so we don't accidently get successful builds
>  # when there are problems that should be fixed.
> @@ -11600,7 +11685,7 @@ dnl
>  # XORG_RELEASE_VERSION
>  # --------------------
>  # Defines PACKAGE_VERSION_{MAJOR,MINOR,PATCHLEVEL} for modules to use.
> -
> +
>  AC_DEFUN([XORG_RELEASE_VERSION],[
>   AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MAJOR],
>   [`echo $PACKAGE_VERSION | cut -d . -f 1`],
> @@ -11662,10 +11747,10 @@ dnl other dealings in this Software with
>  dnl from the copyright holders.
>  dnl
>  
> -# XORG_DRIVER_CHECK_EXT()
> +# XORG_DRIVER_CHECK_EXT(MACRO, PROTO)
>  # --------------------------
> -# Checks for the $1 define in xorg-server.h (from the sdk).  If it
> -# is defined, then add $1 to $REQUIRED_MODULES.
> +# Checks for the MACRO define in xorg-server.h (from the sdk).  If it
> +# is defined, then add the given PROTO to $REQUIRED_MODULES.
>  
>  AC_DEFUN([XORG_DRIVER_CHECK_EXT],[
>   AC_REQUIRE([PKG_PROG_PKG_CONFIG])
> Index: configure
> ===================================================================
> RCS file: /cvs/xenocara/driver/xf86-input-synaptics/configure,v
> retrieving revision 1.7
> diff -u -p -r1.7 configure
> --- configure 2 Jun 2013 18:17:24 -0000 1.7
> +++ configure 8 May 2014 18:28:32 -0000
> @@ -1,6 +1,6 @@
>  #! /bin/sh
>  # Guess values for system-dependent variables and create Makefiles.
> -# Generated by GNU Autoconf 2.69 for xf86-input-synaptics 1.7.1.
> +# Generated by GNU Autoconf 2.69 for xf86-input-synaptics 1.7.5.
>  #
>  # Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
>  #
> @@ -591,8 +591,8 @@ MAKEFLAGS=
>  # Identity of this package.
>  PACKAGE_NAME='xf86-input-synaptics'
>  PACKAGE_TARNAME='xf86-input-synaptics'
> -PACKAGE_VERSION='1.7.1'
> -PACKAGE_STRING='xf86-input-synaptics 1.7.1'
> +PACKAGE_VERSION='1.7.5'
> +PACKAGE_STRING='xf86-input-synaptics 1.7.5'
>  PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
>  PACKAGE_URL=''
>  
> @@ -682,6 +682,8 @@ FILE_MAN_SUFFIX
>  LIB_MAN_SUFFIX
>  APP_MAN_SUFFIX
>  INSTALL_CMD
> +PKG_CONFIG_LIBDIR
> +PKG_CONFIG_PATH
>  PKG_CONFIG
>  CHANGELOG_CMD
>  STRICT_CFLAGS
> @@ -829,6 +831,8 @@ LIBS
>  CPPFLAGS
>  CPP
>  PKG_CONFIG
> +PKG_CONFIG_PATH
> +PKG_CONFIG_LIBDIR
>  XORG_MALLOC_DEBUG_ENV
>  XORG_CFLAGS
>  XORG_LIBS
> @@ -1378,7 +1382,7 @@ if test "$ac_init_help" = "long"; then
>    # Omit some internal or obsolete options to make the list less imposing.
>    # This message is too long to be a string in the A/UX 3.1 sh.
>    cat <<_ACEOF
> -\`configure' configures xf86-input-synaptics 1.7.1 to adapt to many kinds of systems.
> +\`configure' configures xf86-input-synaptics 1.7.5 to adapt to many kinds of systems.
>  
>  Usage: $0 [OPTION]... [VAR=VALUE]...
>  
> @@ -1449,7 +1453,7 @@ fi
>  
>  if test -n "$ac_init_help"; then
>    case $ac_init_help in
> -     short | recursive ) echo "Configuration of xf86-input-synaptics 1.7.1:";;
> +     short | recursive ) echo "Configuration of xf86-input-synaptics 1.7.5:";;
>     esac
>    cat <<\_ACEOF
>  
> @@ -1506,6 +1510,10 @@ Some influential environment variables:
>                you have headers in a nonstandard directory <include dir>
>    CPP         C preprocessor
>    PKG_CONFIG  path to pkg-config utility
> +  PKG_CONFIG_PATH
> +              directories to add to pkg-config's search path
> +  PKG_CONFIG_LIBDIR
> +              path overriding pkg-config's built-in search path
>    XORG_MALLOC_DEBUG_ENV
>                Environment variables to enable memory checking in tests
>    XORG_CFLAGS C compiler flags for XORG, overriding pkg-config
> @@ -1584,7 +1592,7 @@ fi
>  test -n "$ac_init_help" && exit $ac_status
>  if $ac_init_version; then
>    cat <<\_ACEOF
> -xf86-input-synaptics configure 1.7.1
> +xf86-input-synaptics configure 1.7.5
>  generated by GNU Autoconf 2.69
>  
>  Copyright (C) 2012 Free Software Foundation, Inc.
> @@ -1908,7 +1916,7 @@ cat >config.log <<_ACEOF
>  This file contains any messages produced by compilers while
>  running configure, to aid debugging if configure makes a mistake.
>  
> -It was created by xf86-input-synaptics $as_me 1.7.1, which was
> +It was created by xf86-input-synaptics $as_me 1.7.5, which was
>  generated by GNU Autoconf 2.69.  Invocation command line was
>  
>    $ $0 $@
> @@ -2737,7 +2745,7 @@ fi
>  
>  # Define the identity of the package.
>   PACKAGE='xf86-input-synaptics'
> - VERSION='1.7.1'
> + VERSION='1.7.5'
>  
>  
>  cat >>confdefs.h <<_ACEOF
> @@ -11585,6 +11593,11 @@ fi
>  
>  
>  
> +
> +
> +
> +
> +
>  if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
>   if test -n "$ac_tool_prefix"; then
>    # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
> @@ -11697,7 +11710,6 @@ $as_echo "yes" >&6; }
>  $as_echo "no" >&6; }
>   PKG_CONFIG=""
>   fi
> -
>  fi
>  
>  
> @@ -11792,18 +11804,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Wall"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wall" >&5
> -$as_echo_n "checking if $CC supports-Wall... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wall" >&5
> +$as_echo_n "checking if $CC supports -Wall... " >&6; }
>   cacheid=xorg_cv_cc_flag__Wall
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -11910,18 +11922,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Wpointer-arith"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wpointer-arith" >&5
> -$as_echo_n "checking if $CC supports-Wpointer-arith... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wpointer-arith" >&5
> +$as_echo_n "checking if $CC supports -Wpointer-arith... " >&6; }
>   cacheid=xorg_cv_cc_flag__Wpointer_arith
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -12028,18 +12040,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Wmissing-declarations"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmissing-declarations" >&5
> -$as_echo_n "checking if $CC supports-Wmissing-declarations... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wmissing-declarations" >&5
> +$as_echo_n "checking if $CC supports -Wmissing-declarations... " >&6; }
>   cacheid=xorg_cv_cc_flag__Wmissing_declarations
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -12146,18 +12158,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Wformat=2"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wformat=2" >&5
> -$as_echo_n "checking if $CC supports-Wformat=2... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wformat=2" >&5
> +$as_echo_n "checking if $CC supports -Wformat=2... " >&6; }
>   cacheid=xorg_cv_cc_flag__Wformat_2
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -12195,18 +12207,18 @@ $as_echo "$supported" >&6; }
>   fi
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Wformat"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wformat" >&5
> -$as_echo_n "checking if $CC supports-Wformat... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wformat" >&5
> +$as_echo_n "checking if $CC supports -Wformat... " >&6; }
>   cacheid=xorg_cv_cc_flag__Wformat
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -12315,18 +12327,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Wstrict-prototypes"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wstrict-prototypes" >&5
> -$as_echo_n "checking if $CC supports-Wstrict-prototypes... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wstrict-prototypes" >&5
> +$as_echo_n "checking if $CC supports -Wstrict-prototypes... " >&6; }
>   cacheid=xorg_cv_cc_flag__Wstrict_prototypes
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -12433,18 +12445,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Wmissing-prototypes"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmissing-prototypes" >&5
> -$as_echo_n "checking if $CC supports-Wmissing-prototypes... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wmissing-prototypes" >&5
> +$as_echo_n "checking if $CC supports -Wmissing-prototypes... " >&6; }
>   cacheid=xorg_cv_cc_flag__Wmissing_prototypes
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -12551,18 +12563,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Wnested-externs"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wnested-externs" >&5
> -$as_echo_n "checking if $CC supports-Wnested-externs... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wnested-externs" >&5
> +$as_echo_n "checking if $CC supports -Wnested-externs... " >&6; }
>   cacheid=xorg_cv_cc_flag__Wnested_externs
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -12669,18 +12681,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Wbad-function-cast"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wbad-function-cast" >&5
> -$as_echo_n "checking if $CC supports-Wbad-function-cast... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wbad-function-cast" >&5
> +$as_echo_n "checking if $CC supports -Wbad-function-cast... " >&6; }
>   cacheid=xorg_cv_cc_flag__Wbad_function_cast
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -12787,18 +12799,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Wold-style-definition"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wold-style-definition" >&5
> -$as_echo_n "checking if $CC supports-Wold-style-definition... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wold-style-definition" >&5
> +$as_echo_n "checking if $CC supports -Wold-style-definition... " >&6; }
>   cacheid=xorg_cv_cc_flag__Wold_style_definition
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -12835,6 +12847,55 @@ $as_echo "$supported" >&6; }
>   fi
>   fi
>  
> + if test $found = "no" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
> + CFLAGS="$CFLAGS -Werror=unknown-warning-option"
> + fi
> +
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
> + CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
> + fi
> +
> + CFLAGS="$CFLAGS -fd"
> +
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -fd" >&5
> +$as_echo_n "checking if $CC supports -fd... " >&6; }
> + cacheid=xorg_cv_cc_flag__fd
> + if eval \${$cacheid+:} false; then :
> +  $as_echo_n "(cached) " >&6
> +else
> +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> +/* end confdefs.h.  */
> +int i;
> +int
> +main ()
> +{
> +
> +  ;
> +  return 0;
> +}
> +_ACEOF
> +if ac_fn_c_try_link "$LINENO"; then :
> +  eval $cacheid=yes
> +else
> +  eval $cacheid=no
> +fi
> +rm -f core conftest.err conftest.$ac_objext \
> +    conftest$ac_exeext conftest.$ac_ext
> +fi
> +
> +
> + CFLAGS="$xorg_testset_save_CFLAGS"
> +
> + eval supported=\$$cacheid
> + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5
> +$as_echo "$supported" >&6; }
> + if test "$supported" = "yes" ; then
> + BASE_CFLAGS="$BASE_CFLAGS -fd"
> + found="yes"
> + fi
> + fi
> +
>  
>  
>  
> @@ -12905,18 +12966,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Wdeclaration-after-statement"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wdeclaration-after-statement" >&5
> -$as_echo_n "checking if $CC supports-Wdeclaration-after-statement... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wdeclaration-after-statement" >&5
> +$as_echo_n "checking if $CC supports -Wdeclaration-after-statement... " >&6; }
>   cacheid=xorg_cv_cc_flag__Wdeclaration_after_statement
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -13027,18 +13088,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Wunused"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wunused" >&5
> -$as_echo_n "checking if $CC supports-Wunused... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wunused" >&5
> +$as_echo_n "checking if $CC supports -Wunused... " >&6; }
>   cacheid=xorg_cv_cc_flag__Wunused
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -13145,18 +13206,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Wuninitialized"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wuninitialized" >&5
> -$as_echo_n "checking if $CC supports-Wuninitialized... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wuninitialized" >&5
> +$as_echo_n "checking if $CC supports -Wuninitialized... " >&6; }
>   cacheid=xorg_cv_cc_flag__Wuninitialized
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -13263,18 +13324,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Wshadow"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wshadow" >&5
> -$as_echo_n "checking if $CC supports-Wshadow... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wshadow" >&5
> +$as_echo_n "checking if $CC supports -Wshadow... " >&6; }
>   cacheid=xorg_cv_cc_flag__Wshadow
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -13381,19 +13442,19 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
> - CFLAGS="$CFLAGS -Wcast-qual"
> + CFLAGS="$CFLAGS -Wmissing-noreturn"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wcast-qual" >&5
> -$as_echo_n "checking if $CC supports-Wcast-qual... " >&6; }
> - cacheid=xorg_cv_cc_flag__Wcast_qual
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wmissing-noreturn" >&5
> +$as_echo_n "checking if $CC supports -Wmissing-noreturn... " >&6; }
> + cacheid=xorg_cv_cc_flag__Wmissing_noreturn
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
>  else
> @@ -13424,7 +13485,7 @@ fi
>   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5
>  $as_echo "$supported" >&6; }
>   if test "$supported" = "yes" ; then
> - BASE_CFLAGS="$BASE_CFLAGS -Wcast-qual"
> + BASE_CFLAGS="$BASE_CFLAGS -Wmissing-noreturn"
>   found="yes"
>   fi
>   fi
> @@ -13499,19 +13560,19 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
> - CFLAGS="$CFLAGS -Wmissing-noreturn"
> + CFLAGS="$CFLAGS -Wmissing-format-attribute"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmissing-noreturn" >&5
> -$as_echo_n "checking if $CC supports-Wmissing-noreturn... " >&6; }
> - cacheid=xorg_cv_cc_flag__Wmissing_noreturn
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wmissing-format-attribute" >&5
> +$as_echo_n "checking if $CC supports -Wmissing-format-attribute... " >&6; }
> + cacheid=xorg_cv_cc_flag__Wmissing_format_attribute
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
>  else
> @@ -13542,12 +13603,13 @@ fi
>   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5
>  $as_echo "$supported" >&6; }
>   if test "$supported" = "yes" ; then
> - BASE_CFLAGS="$BASE_CFLAGS -Wmissing-noreturn"
> + BASE_CFLAGS="$BASE_CFLAGS -Wmissing-format-attribute"
>   found="yes"
>   fi
>   fi
>  
>  
> +# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wredundant-decls])
>  
>  
>  
> @@ -13617,19 +13679,19 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
> - CFLAGS="$CFLAGS -Wmissing-format-attribute"
> + CFLAGS="$CFLAGS -Wlogical-op"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmissing-format-attribute" >&5
> -$as_echo_n "checking if $CC supports-Wmissing-format-attribute... " >&6; }
> - cacheid=xorg_cv_cc_flag__Wmissing_format_attribute
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wlogical-op" >&5
> +$as_echo_n "checking if $CC supports -Wlogical-op... " >&6; }
> + cacheid=xorg_cv_cc_flag__Wlogical_op
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
>  else
> @@ -13660,7 +13722,7 @@ fi
>   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5
>  $as_echo "$supported" >&6; }
>   if test "$supported" = "yes" ; then
> - BASE_CFLAGS="$BASE_CFLAGS -Wmissing-format-attribute"
> + BASE_CFLAGS="$BASE_CFLAGS -Wlogical-op"
>   found="yes"
>   fi
>   fi
> @@ -13670,9 +13732,9 @@ $as_echo "$supported" >&6; }
>  # These are currently disabled because they are noisy.  They will be enabled
>  # in the future once the codebase is sufficiently modernized to silence
>  # them.  For now, I don't want them to drown out the other warnings.
> -# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wlogical-op])
>  # XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wparentheses])
>  # XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-align])
> +# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-qual])
>  
>  # Turn some warnings into errors, so we don't accidently get successful builds
>  # when there are problems that should be fixed.
> @@ -13747,18 +13809,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Werror=implicit"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=implicit" >&5
> -$as_echo_n "checking if $CC supports-Werror=implicit... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=implicit" >&5
> +$as_echo_n "checking if $CC supports -Werror=implicit... " >&6; }
>   cacheid=xorg_cv_cc_flag__Werror_implicit
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -13796,18 +13858,18 @@ $as_echo "$supported" >&6; }
>   fi
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED" >&5
> -$as_echo_n "checking if $CC supports-errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED" >&5
> +$as_echo_n "checking if $CC supports -errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED... " >&6; }
>   cacheid=xorg_cv_cc_flag__errwarn_E_NO_EXPLICIT_TYPE_GIVEN__errwarn_E_NO_IMPLICIT_DECL_ALLOWED
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -13914,18 +13976,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Werror=nonnull"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=nonnull" >&5
> -$as_echo_n "checking if $CC supports-Werror=nonnull... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=nonnull" >&5
> +$as_echo_n "checking if $CC supports -Werror=nonnull... " >&6; }
>   cacheid=xorg_cv_cc_flag__Werror_nonnull
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -14032,18 +14094,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Werror=init-self"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=init-self" >&5
> -$as_echo_n "checking if $CC supports-Werror=init-self... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=init-self" >&5
> +$as_echo_n "checking if $CC supports -Werror=init-self... " >&6; }
>   cacheid=xorg_cv_cc_flag__Werror_init_self
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -14150,18 +14212,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Werror=main"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=main" >&5
> -$as_echo_n "checking if $CC supports-Werror=main... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=main" >&5
> +$as_echo_n "checking if $CC supports -Werror=main... " >&6; }
>   cacheid=xorg_cv_cc_flag__Werror_main
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -14268,18 +14330,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Werror=missing-braces"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=missing-braces" >&5
> -$as_echo_n "checking if $CC supports-Werror=missing-braces... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=missing-braces" >&5
> +$as_echo_n "checking if $CC supports -Werror=missing-braces... " >&6; }
>   cacheid=xorg_cv_cc_flag__Werror_missing_braces
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -14386,18 +14448,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Werror=sequence-point"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=sequence-point" >&5
> -$as_echo_n "checking if $CC supports-Werror=sequence-point... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=sequence-point" >&5
> +$as_echo_n "checking if $CC supports -Werror=sequence-point... " >&6; }
>   cacheid=xorg_cv_cc_flag__Werror_sequence_point
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -14504,18 +14566,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Werror=return-type"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=return-type" >&5
> -$as_echo_n "checking if $CC supports-Werror=return-type... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=return-type" >&5
> +$as_echo_n "checking if $CC supports -Werror=return-type... " >&6; }
>   cacheid=xorg_cv_cc_flag__Werror_return_type
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -14553,18 +14615,18 @@ $as_echo "$supported" >&6; }
>   fi
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -errwarn=E_FUNC_HAS_NO_RETURN_STMT"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-errwarn=E_FUNC_HAS_NO_RETURN_STMT" >&5
> -$as_echo_n "checking if $CC supports-errwarn=E_FUNC_HAS_NO_RETURN_STMT... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -errwarn=E_FUNC_HAS_NO_RETURN_STMT" >&5
> +$as_echo_n "checking if $CC supports -errwarn=E_FUNC_HAS_NO_RETURN_STMT... " >&6; }
>   cacheid=xorg_cv_cc_flag__errwarn_E_FUNC_HAS_NO_RETURN_STMT
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -14671,18 +14733,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Werror=trigraphs"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=trigraphs" >&5
> -$as_echo_n "checking if $CC supports-Werror=trigraphs... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=trigraphs" >&5
> +$as_echo_n "checking if $CC supports -Werror=trigraphs... " >&6; }
>   cacheid=xorg_cv_cc_flag__Werror_trigraphs
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -14789,18 +14851,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Werror=array-bounds"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=array-bounds" >&5
> -$as_echo_n "checking if $CC supports-Werror=array-bounds... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=array-bounds" >&5
> +$as_echo_n "checking if $CC supports -Werror=array-bounds... " >&6; }
>   cacheid=xorg_cv_cc_flag__Werror_array_bounds
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -14907,18 +14969,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Werror=write-strings"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=write-strings" >&5
> -$as_echo_n "checking if $CC supports-Werror=write-strings... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=write-strings" >&5
> +$as_echo_n "checking if $CC supports -Werror=write-strings... " >&6; }
>   cacheid=xorg_cv_cc_flag__Werror_write_strings
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -15025,18 +15087,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Werror=address"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=address" >&5
> -$as_echo_n "checking if $CC supports-Werror=address... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=address" >&5
> +$as_echo_n "checking if $CC supports -Werror=address... " >&6; }
>   cacheid=xorg_cv_cc_flag__Werror_address
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -15143,18 +15205,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Werror=int-to-pointer-cast"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=int-to-pointer-cast" >&5
> -$as_echo_n "checking if $CC supports-Werror=int-to-pointer-cast... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=int-to-pointer-cast" >&5
> +$as_echo_n "checking if $CC supports -Werror=int-to-pointer-cast... " >&6; }
>   cacheid=xorg_cv_cc_flag__Werror_int_to_pointer_cast
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -15192,18 +15254,18 @@ $as_echo "$supported" >&6; }
>   fi
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -errwarn=E_BAD_PTR_INT_COMBINATION"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-errwarn=E_BAD_PTR_INT_COMBINATION" >&5
> -$as_echo_n "checking if $CC supports-errwarn=E_BAD_PTR_INT_COMBINATION... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -errwarn=E_BAD_PTR_INT_COMBINATION" >&5
> +$as_echo_n "checking if $CC supports -errwarn=E_BAD_PTR_INT_COMBINATION... " >&6; }
>   cacheid=xorg_cv_cc_flag__errwarn_E_BAD_PTR_INT_COMBINATION
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -15310,18 +15372,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Werror=pointer-to-int-cast"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=pointer-to-int-cast" >&5
> -$as_echo_n "checking if $CC supports-Werror=pointer-to-int-cast... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=pointer-to-int-cast" >&5
> +$as_echo_n "checking if $CC supports -Werror=pointer-to-int-cast... " >&6; }
>   cacheid=xorg_cv_cc_flag__Werror_pointer_to_int_cast
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -15431,18 +15493,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Wimplicit"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wimplicit" >&5
> -$as_echo_n "checking if $CC supports-Wimplicit... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wimplicit" >&5
> +$as_echo_n "checking if $CC supports -Wimplicit... " >&6; }
>   cacheid=xorg_cv_cc_flag__Wimplicit
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -15549,18 +15611,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Wnonnull"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wnonnull" >&5
> -$as_echo_n "checking if $CC supports-Wnonnull... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wnonnull" >&5
> +$as_echo_n "checking if $CC supports -Wnonnull... " >&6; }
>   cacheid=xorg_cv_cc_flag__Wnonnull
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -15667,18 +15729,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Winit-self"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Winit-self" >&5
> -$as_echo_n "checking if $CC supports-Winit-self... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Winit-self" >&5
> +$as_echo_n "checking if $CC supports -Winit-self... " >&6; }
>   cacheid=xorg_cv_cc_flag__Winit_self
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -15785,18 +15847,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Wmain"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmain" >&5
> -$as_echo_n "checking if $CC supports-Wmain... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wmain" >&5
> +$as_echo_n "checking if $CC supports -Wmain... " >&6; }
>   cacheid=xorg_cv_cc_flag__Wmain
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -15903,18 +15965,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Wmissing-braces"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmissing-braces" >&5
> -$as_echo_n "checking if $CC supports-Wmissing-braces... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wmissing-braces" >&5
> +$as_echo_n "checking if $CC supports -Wmissing-braces... " >&6; }
>   cacheid=xorg_cv_cc_flag__Wmissing_braces
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -16021,18 +16083,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Wsequence-point"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wsequence-point" >&5
> -$as_echo_n "checking if $CC supports-Wsequence-point... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wsequence-point" >&5
> +$as_echo_n "checking if $CC supports -Wsequence-point... " >&6; }
>   cacheid=xorg_cv_cc_flag__Wsequence_point
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -16139,18 +16201,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Wreturn-type"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wreturn-type" >&5
> -$as_echo_n "checking if $CC supports-Wreturn-type... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wreturn-type" >&5
> +$as_echo_n "checking if $CC supports -Wreturn-type... " >&6; }
>   cacheid=xorg_cv_cc_flag__Wreturn_type
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -16257,18 +16319,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Wtrigraphs"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wtrigraphs" >&5
> -$as_echo_n "checking if $CC supports-Wtrigraphs... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wtrigraphs" >&5
> +$as_echo_n "checking if $CC supports -Wtrigraphs... " >&6; }
>   cacheid=xorg_cv_cc_flag__Wtrigraphs
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -16375,18 +16437,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Warray-bounds"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Warray-bounds" >&5
> -$as_echo_n "checking if $CC supports-Warray-bounds... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Warray-bounds" >&5
> +$as_echo_n "checking if $CC supports -Warray-bounds... " >&6; }
>   cacheid=xorg_cv_cc_flag__Warray_bounds
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -16493,18 +16555,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Wwrite-strings"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wwrite-strings" >&5
> -$as_echo_n "checking if $CC supports-Wwrite-strings... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wwrite-strings" >&5
> +$as_echo_n "checking if $CC supports -Wwrite-strings... " >&6; }
>   cacheid=xorg_cv_cc_flag__Wwrite_strings
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -16611,18 +16673,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Waddress"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Waddress" >&5
> -$as_echo_n "checking if $CC supports-Waddress... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Waddress" >&5
> +$as_echo_n "checking if $CC supports -Waddress... " >&6; }
>   cacheid=xorg_cv_cc_flag__Waddress
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -16729,18 +16791,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Wint-to-pointer-cast"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wint-to-pointer-cast" >&5
> -$as_echo_n "checking if $CC supports-Wint-to-pointer-cast... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wint-to-pointer-cast" >&5
> +$as_echo_n "checking if $CC supports -Wint-to-pointer-cast... " >&6; }
>   cacheid=xorg_cv_cc_flag__Wint_to_pointer_cast
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -16847,18 +16909,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Wpointer-to-int-cast"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wpointer-to-int-cast" >&5
> -$as_echo_n "checking if $CC supports-Wpointer-to-int-cast... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wpointer-to-int-cast" >&5
> +$as_echo_n "checking if $CC supports -Wpointer-to-int-cast... " >&6; }
>   cacheid=xorg_cv_cc_flag__Wpointer_to_int_cast
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -16998,18 +17060,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -pedantic"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-pedantic" >&5
> -$as_echo_n "checking if $CC supports-pedantic... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -pedantic" >&5
> +$as_echo_n "checking if $CC supports -pedantic... " >&6; }
>   cacheid=xorg_cv_cc_flag__pedantic
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -17116,18 +17178,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Werror"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror" >&5
> -$as_echo_n "checking if $CC supports-Werror... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror" >&5
> +$as_echo_n "checking if $CC supports -Werror... " >&6; }
>   cacheid=xorg_cv_cc_flag__Werror
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -17165,18 +17227,18 @@ $as_echo "$supported" >&6; }
>   fi
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -errwarn"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-errwarn" >&5
> -$as_echo_n "checking if $CC supports-errwarn... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -errwarn" >&5
> +$as_echo_n "checking if $CC supports -errwarn... " >&6; }
>   cacheid=xorg_cv_cc_flag__errwarn
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -17286,18 +17348,18 @@ fi
>  found="no"
>  
>   if test $found = "no" ; then
> - if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unknown-warning-option"
>   fi
>  
> - if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then
> + if test "x$xorg_testset_cc_unused_command_line_argument" = "xyes" ; then
>   CFLAGS="$CFLAGS -Werror=unused-command-line-argument"
>   fi
>  
>   CFLAGS="$CFLAGS -Werror=attributes"
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=attributes" >&5
> -$as_echo_n "checking if $CC supports-Werror=attributes... " >&6; }
> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=attributes" >&5
> +$as_echo_n "checking if $CC supports -Werror=attributes... " >&6; }
>   cacheid=xorg_cv_cc_flag__Werror_attributes
>   if eval \${$cacheid+:} false; then :
>    $as_echo_n "(cached) " >&6
> @@ -17702,46 +17764,46 @@ pkg_failed=no
>  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XORG" >&5
>  $as_echo_n "checking for XORG... " >&6; }
>  
> -if test -n "$PKG_CONFIG"; then
> -    if test -n "$XORG_CFLAGS"; then
> -        pkg_cv_XORG_CFLAGS="$XORG_CFLAGS"
> -    else
> -        if test -n "$PKG_CONFIG" && \
> +if test -n "$XORG_CFLAGS"; then
> +    pkg_cv_XORG_CFLAGS="$XORG_CFLAGS"
> + elif test -n "$PKG_CONFIG"; then
> +    if test -n "$PKG_CONFIG" && \
>      { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"inputproto >= 2.1.99.3 xorg-server >= 1.12 xproto inputproto \$REQUIRED_MODULES\""; } >&5
>    ($PKG_CONFIG --exists --print-errors "inputproto >= 2.1.99.3 xorg-server >= 1.12 xproto inputproto $REQUIRED_MODULES") 2>&5
>    ac_status=$?
>    $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
>    test $ac_status = 0; }; then
>    pkg_cv_XORG_CFLAGS=`$PKG_CONFIG --cflags "inputproto >= 2.1.99.3 xorg-server >= 1.12 xproto inputproto $REQUIRED_MODULES" 2>/dev/null`
> +      test "x$?" != "x0" && pkg_failed=yes
>  else
>    pkg_failed=yes
>  fi
> -    fi
> -else
> - pkg_failed=untried
> + else
> +    pkg_failed=untried
>  fi
> -if test -n "$PKG_CONFIG"; then
> -    if test -n "$XORG_LIBS"; then
> -        pkg_cv_XORG_LIBS="$XORG_LIBS"
> -    else
> -        if test -n "$PKG_CONFIG" && \
> +if test -n "$XORG_LIBS"; then
> +    pkg_cv_XORG_LIBS="$XORG_LIBS"
> + elif test -n "$PKG_CONFIG"; then
> +    if test -n "$PKG_CONFIG" && \
>      { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"inputproto >= 2.1.99.3 xorg-server >= 1.12 xproto inputproto \$REQUIRED_MODULES\""; } >&5
>    ($PKG_CONFIG --exists --print-errors "inputproto >= 2.1.99.3 xorg-server >= 1.12 xproto inputproto $REQUIRED_MODULES") 2>&5
>    ac_status=$?
>    $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
>    test $ac_status = 0; }; then
>    pkg_cv_XORG_LIBS=`$PKG_CONFIG --libs "inputproto >= 2.1.99.3 xorg-server >= 1.12 xproto inputproto $REQUIRED_MODULES" 2>/dev/null`
> +      test "x$?" != "x0" && pkg_failed=yes
>  else
>    pkg_failed=yes
>  fi
> -    fi
> -else
> - pkg_failed=untried
> + else
> +    pkg_failed=untried
>  fi
>  
>  
>  
>  if test $pkg_failed = yes; then
> +   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
> +$as_echo "no" >&6; }
>  
>  if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
>          _pkg_short_errors_supported=yes
> @@ -17749,9 +17811,9 @@ else
>          _pkg_short_errors_supported=no
>  fi
>          if test $_pkg_short_errors_supported = yes; then
> -        XORG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "inputproto >= 2.1.99.3 xorg-server >= 1.12 xproto inputproto $REQUIRED_MODULES"`
> +        XORG_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "inputproto >= 2.1.99.3 xorg-server >= 1.12 xproto inputproto $REQUIRED_MODULES" 2>&1`
>          else
> -        XORG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "inputproto >= 2.1.99.3 xorg-server >= 1.12 xproto inputproto $REQUIRED_MODULES"`
> +        XORG_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "inputproto >= 2.1.99.3 xorg-server >= 1.12 xproto inputproto $REQUIRED_MODULES" 2>&1`
>          fi
>   # Put the nasty error message in config.log where it belongs
>   echo "$XORG_PKG_ERRORS" >&5
> @@ -17765,9 +17827,10 @@ installed software in a non-standard pre
>  
>  Alternatively, you may set the environment variables XORG_CFLAGS
>  and XORG_LIBS to avoid the need to call pkg-config.
> -See the pkg-config man page for more details.
> -" "$LINENO" 5
> +See the pkg-config man page for more details." "$LINENO" 5
>  elif test $pkg_failed = untried; then
> +     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
> +$as_echo "no" >&6; }
>   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
>  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
>  as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
> @@ -17778,14 +17841,14 @@ Alternatively, you may set the environme
>  and XORG_LIBS to avoid the need to call pkg-config.
>  See the pkg-config man page for more details.
>  
> -To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.
> +To get pkg-config, see <http://pkg-config.freedesktop.org/>.
>  See \`config.log' for more details" "$LINENO" 5; }
>  else
>   XORG_CFLAGS=$pkg_cv_XORG_CFLAGS
>   XORG_LIBS=$pkg_cv_XORG_LIBS
>          { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
>  $as_echo "yes" >&6; }
> - :
> +
>  fi
>  
>  # X Server SDK location is required to install Synaptics header files
> @@ -17893,46 +17956,46 @@ pkg_failed=no
>  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MTDEV" >&5
>  $as_echo_n "checking for MTDEV... " >&6; }
>  
> -if test -n "$PKG_CONFIG"; then
> -    if test -n "$MTDEV_CFLAGS"; then
> -        pkg_cv_MTDEV_CFLAGS="$MTDEV_CFLAGS"
> -    else
> -        if test -n "$PKG_CONFIG" && \
> +if test -n "$MTDEV_CFLAGS"; then
> +    pkg_cv_MTDEV_CFLAGS="$MTDEV_CFLAGS"
> + elif test -n "$PKG_CONFIG"; then
> +    if test -n "$PKG_CONFIG" && \
>      { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mtdev\""; } >&5
>    ($PKG_CONFIG --exists --print-errors "mtdev") 2>&5
>    ac_status=$?
>    $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
>    test $ac_status = 0; }; then
>    pkg_cv_MTDEV_CFLAGS=`$PKG_CONFIG --cflags "mtdev" 2>/dev/null`
> +      test "x$?" != "x0" && pkg_failed=yes
>  else
>    pkg_failed=yes
>  fi
> -    fi
> -else
> - pkg_failed=untried
> + else
> +    pkg_failed=untried
>  fi
> -if test -n "$PKG_CONFIG"; then
> -    if test -n "$MTDEV_LIBS"; then
> -        pkg_cv_MTDEV_LIBS="$MTDEV_LIBS"
> -    else
> -        if test -n "$PKG_CONFIG" && \
> +if test -n "$MTDEV_LIBS"; then
> +    pkg_cv_MTDEV_LIBS="$MTDEV_LIBS"
> + elif test -n "$PKG_CONFIG"; then
> +    if test -n "$PKG_CONFIG" && \
>      { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mtdev\""; } >&5
>    ($PKG_CONFIG --exists --print-errors "mtdev") 2>&5
>    ac_status=$?
>    $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
>    test $ac_status = 0; }; then
>    pkg_cv_MTDEV_LIBS=`$PKG_CONFIG --libs "mtdev" 2>/dev/null`
> +      test "x$?" != "x0" && pkg_failed=yes
>  else
>    pkg_failed=yes
>  fi
> -    fi
> -else
> - pkg_failed=untried
> + else
> +    pkg_failed=untried
>  fi
>  
>  
>  
>  if test $pkg_failed = yes; then
> +   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
> +$as_echo "no" >&6; }
>  
>  if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
>          _pkg_short_errors_supported=yes
> @@ -17940,9 +18003,9 @@ else
>          _pkg_short_errors_supported=no
>  fi
>          if test $_pkg_short_errors_supported = yes; then
> -        MTDEV_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "mtdev"`
> +        MTDEV_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "mtdev" 2>&1`
>          else
> -        MTDEV_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "mtdev"`
> +        MTDEV_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "mtdev" 2>&1`
>          fi
>   # Put the nasty error message in config.log where it belongs
>   echo "$MTDEV_PKG_ERRORS" >&5
> @@ -17956,9 +18019,10 @@ installed software in a non-standard pre
>  
>  Alternatively, you may set the environment variables MTDEV_CFLAGS
>  and MTDEV_LIBS to avoid the need to call pkg-config.
> -See the pkg-config man page for more details.
> -" "$LINENO" 5
> +See the pkg-config man page for more details." "$LINENO" 5
>  elif test $pkg_failed = untried; then
> +     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
> +$as_echo "no" >&6; }
>   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
>  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
>  as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
> @@ -17969,14 +18033,14 @@ Alternatively, you may set the environme
>  and MTDEV_LIBS to avoid the need to call pkg-config.
>  See the pkg-config man page for more details.
>  
> -To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.
> +To get pkg-config, see <http://pkg-config.freedesktop.org/>.
>  See \`config.log' for more details" "$LINENO" 5; }
>  else
>   MTDEV_CFLAGS=$pkg_cv_MTDEV_CFLAGS
>   MTDEV_LIBS=$pkg_cv_MTDEV_LIBS
>          { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
>  $as_echo "yes" >&6; }
> - :
> +
>  fi
>  fi
>  if test "x$BUILD_PSMCOMM" = xyes; then
> @@ -18036,46 +18100,46 @@ pkg_failed=no
>  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XI" >&5
>  $as_echo_n "checking for XI... " >&6; }
>  
> -if test -n "$PKG_CONFIG"; then
> -    if test -n "$XI_CFLAGS"; then
> -        pkg_cv_XI_CFLAGS="$XI_CFLAGS"
> -    else
> -        if test -n "$PKG_CONFIG" && \
> +if test -n "$XI_CFLAGS"; then
> +    pkg_cv_XI_CFLAGS="$XI_CFLAGS"
> + elif test -n "$PKG_CONFIG"; then
> +    if test -n "$PKG_CONFIG" && \
>      { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11 inputproto xi >= 1.2\""; } >&5
>    ($PKG_CONFIG --exists --print-errors "x11 inputproto xi >= 1.2") 2>&5
>    ac_status=$?
>    $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
>    test $ac_status = 0; }; then
>    pkg_cv_XI_CFLAGS=`$PKG_CONFIG --cflags "x11 inputproto xi >= 1.2" 2>/dev/null`
> +      test "x$?" != "x0" && pkg_failed=yes
>  else
>    pkg_failed=yes
>  fi
> -    fi
> -else
> - pkg_failed=untried
> + else
> +    pkg_failed=untried
>  fi
> -if test -n "$PKG_CONFIG"; then
> -    if test -n "$XI_LIBS"; then
> -        pkg_cv_XI_LIBS="$XI_LIBS"
> -    else
> -        if test -n "$PKG_CONFIG" && \
> +if test -n "$XI_LIBS"; then
> +    pkg_cv_XI_LIBS="$XI_LIBS"
> + elif test -n "$PKG_CONFIG"; then
> +    if test -n "$PKG_CONFIG" && \
>      { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11 inputproto xi >= 1.2\""; } >&5
>    ($PKG_CONFIG --exists --print-errors "x11 inputproto xi >= 1.2") 2>&5
>    ac_status=$?
>    $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
>    test $ac_status = 0; }; then
>    pkg_cv_XI_LIBS=`$PKG_CONFIG --libs "x11 inputproto xi >= 1.2" 2>/dev/null`
> +      test "x$?" != "x0" && pkg_failed=yes
>  else
>    pkg_failed=yes
>  fi
> -    fi
> -else
> - pkg_failed=untried
> + else
> +    pkg_failed=untried
>  fi
>  
>  
>  
>  if test $pkg_failed = yes; then
> +   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
> +$as_echo "no" >&6; }
>  
>  if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
>          _pkg_short_errors_supported=yes
> @@ -18083,9 +18147,9 @@ else
>          _pkg_short_errors_supported=no
>  fi
>          if test $_pkg_short_errors_supported = yes; then
> -        XI_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "x11 inputproto xi >= 1.2"`
> +        XI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "x11 inputproto xi >= 1.2" 2>&1`
>          else
> -        XI_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "x11 inputproto xi >= 1.2"`
> +        XI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "x11 inputproto xi >= 1.2" 2>&1`
>          fi
>   # Put the nasty error message in config.log where it belongs
>   echo "$XI_PKG_ERRORS" >&5
> @@ -18099,9 +18163,10 @@ installed software in a non-standard pre
>  
>  Alternatively, you may set the environment variables XI_CFLAGS
>  and XI_LIBS to avoid the need to call pkg-config.
> -See the pkg-config man page for more details.
> -" "$LINENO" 5
> +See the pkg-config man page for more details." "$LINENO" 5
>  elif test $pkg_failed = untried; then
> +     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
> +$as_echo "no" >&6; }
>   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
>  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
>  as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
> @@ -18112,14 +18177,14 @@ Alternatively, you may set the environme
>  and XI_LIBS to avoid the need to call pkg-config.
>  See the pkg-config man page for more details.
>  
> -To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.
> +To get pkg-config, see <http://pkg-config.freedesktop.org/>.
>  See \`config.log' for more details" "$LINENO" 5; }
>  else
>   XI_CFLAGS=$pkg_cv_XI_CFLAGS
>   XI_LIBS=$pkg_cv_XI_LIBS
>          { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
>  $as_echo "yes" >&6; }
> - :
> +
>  fi
>  
>  # The syndaemon program uses an optional XRecord extension implementation
> @@ -18130,46 +18195,46 @@ pkg_failed=no
>  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XTST" >&5
>  $as_echo_n "checking for XTST... " >&6; }
>  
> -if test -n "$PKG_CONFIG"; then
> -    if test -n "$XTST_CFLAGS"; then
> -        pkg_cv_XTST_CFLAGS="$XTST_CFLAGS"
> -    else
> -        if test -n "$PKG_CONFIG" && \
> +if test -n "$XTST_CFLAGS"; then
> +    pkg_cv_XTST_CFLAGS="$XTST_CFLAGS"
> + elif test -n "$PKG_CONFIG"; then
> +    if test -n "$PKG_CONFIG" && \
>      { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xtst recordproto\""; } >&5
>    ($PKG_CONFIG --exists --print-errors "xtst recordproto") 2>&5
>    ac_status=$?
>    $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
>    test $ac_status = 0; }; then
>    pkg_cv_XTST_CFLAGS=`$PKG_CONFIG --cflags "xtst recordproto" 2>/dev/null`
> +      test "x$?" != "x0" && pkg_failed=yes
>  else
>    pkg_failed=yes
>  fi
> -    fi
> -else
> - pkg_failed=untried
> + else
> +    pkg_failed=untried
>  fi
> -if test -n "$PKG_CONFIG"; then
> -    if test -n "$XTST_LIBS"; then
> -        pkg_cv_XTST_LIBS="$XTST_LIBS"
> -    else
> -        if test -n "$PKG_CONFIG" && \
> +if test -n "$XTST_LIBS"; then
> +    pkg_cv_XTST_LIBS="$XTST_LIBS"
> + elif test -n "$PKG_CONFIG"; then
> +    if test -n "$PKG_CONFIG" && \
>      { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xtst recordproto\""; } >&5
>    ($PKG_CONFIG --exists --print-errors "xtst recordproto") 2>&5
>    ac_status=$?
>    $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
>    test $ac_status = 0; }; then
>    pkg_cv_XTST_LIBS=`$PKG_CONFIG --libs "xtst recordproto" 2>/dev/null`
> +      test "x$?" != "x0" && pkg_failed=yes
>  else
>    pkg_failed=yes
>  fi
> -    fi
> -else
> - pkg_failed=untried
> + else
> +    pkg_failed=untried
>  fi
>  
>  
>  
>  if test $pkg_failed = yes; then
> +   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
> +$as_echo "no" >&6; }
>  
>  if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
>          _pkg_short_errors_supported=yes
> @@ -18177,17 +18242,17 @@ else
>          _pkg_short_errors_supported=no
>  fi
>          if test $_pkg_short_errors_supported = yes; then
> -        XTST_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xtst recordproto"`
> +        XTST_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "xtst recordproto" 2>&1`
>          else
> -        XTST_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xtst recordproto"`
> +        XTST_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "xtst recordproto" 2>&1`
>          fi
>   # Put the nasty error message in config.log where it belongs
>   echo "$XTST_PKG_ERRORS" >&5
>  
> - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
> -$as_echo "no" >&6; }
> -                have_libxtst="no"
> + have_libxtst="no"
>  elif test $pkg_failed = untried; then
> +     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
> +$as_echo "no" >&6; }
>   have_libxtst="no"
>  else
>   XTST_CFLAGS=$pkg_cv_XTST_CFLAGS
> @@ -18790,7 +18855,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri
>  # report actual input values of CONFIG_FILES etc. instead of their
>  # values after options handling.
>  ac_log="
> -This file was extended by xf86-input-synaptics $as_me 1.7.1, which was
> +This file was extended by xf86-input-synaptics $as_me 1.7.5, which was
>  generated by GNU Autoconf 2.69.  Invocation command line was
>  
>    CONFIG_FILES    = $CONFIG_FILES
> @@ -18856,7 +18921,7 @@ _ACEOF
>  cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
>  ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
>  ac_cs_version="\\
> -xf86-input-synaptics config.status 1.7.1
> +xf86-input-synaptics config.status 1.7.5
>  configured by $0, generated by GNU Autoconf 2.69,
>    with options \\"\$ac_cs_config\\"
>  
> Index: configure.ac
> ===================================================================
> RCS file: /cvs/xenocara/driver/xf86-input-synaptics/configure.ac,v
> retrieving revision 1.7
> diff -u -p -r1.7 configure.ac
> --- configure.ac 2 Jun 2013 18:17:24 -0000 1.7
> +++ configure.ac 8 May 2014 18:28:32 -0000
> @@ -23,7 +23,7 @@
>  # Initialize Autoconf
>  AC_PREREQ([2.60])
>  AC_INIT([xf86-input-synaptics],
> -        [1.7.1],
> +        [1.7.5],
>          [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
>          [xf86-input-synaptics])
>  AC_CONFIG_SRCDIR([Makefile.am])
> Index: test-driver
> ===================================================================
> RCS file: test-driver
> diff -N test-driver
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ test-driver 8 May 2014 18:28:32 -0000
> @@ -0,0 +1,127 @@
> +#! /bin/sh
> +# test-driver - basic testsuite driver script.
> +
> +scriptversion=2012-06-27.10; # UTC
> +
> +# Copyright (C) 2011-2013 Free Software Foundation, Inc.
> +#
> +# This program is free software; you can redistribute it and/or modify
> +# it under the terms of the GNU General Public License as published by
> +# the Free Software Foundation; either version 2, or (at your option)
> +# any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +# GNU General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
> +
> +# As a special exception to the GNU General Public License, if you
> +# distribute this file as part of a program that contains a
> +# configuration script generated by Autoconf, you may include it under
> +# the same distribution terms that you use for the rest of that program.
> +
> +# This file is maintained in Automake, please report
> +# bugs to <[hidden email]> or send patches to
> +# <[hidden email]>.
> +
> +# Make unconditional expansion of undefined variables an error.  This
> +# helps a lot in preventing typo-related bugs.
> +set -u
> +
> +usage_error ()
> +{
> +  echo "$0: $*" >&2
> +  print_usage >&2
> +  exit 2
> +}
> +
> +print_usage ()
> +{
> +  cat <<END
> +Usage:
> +  test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
> +              [--expect-failure={yes|no}] [--color-tests={yes|no}]
> +              [--enable-hard-errors={yes|no}] [--] TEST-SCRIPT
> +The '--test-name', '--log-file' and '--trs-file' options are mandatory.
> +END
> +}
> +
> +# TODO: better error handling in option parsing (in particular, ensure
> +# TODO: $log_file, $trs_file and $test_name are defined).
> +test_name= # Used for reporting.
> +log_file=  # Where to save the output of the test script.
> +trs_file=  # Where to save the metadata of the test run.
> +expect_failure=no
> +color_tests=no
> +enable_hard_errors=yes
> +while test $# -gt 0; do
> +  case $1 in
> +  --help) print_usage; exit $?;;
> +  --version) echo "test-driver $scriptversion"; exit $?;;
> +  --test-name) test_name=$2; shift;;
> +  --log-file) log_file=$2; shift;;
> +  --trs-file) trs_file=$2; shift;;
> +  --color-tests) color_tests=$2; shift;;
> +  --expect-failure) expect_failure=$2; shift;;
> +  --enable-hard-errors) enable_hard_errors=$2; shift;;
> +  --) shift; break;;
> +  -*) usage_error "invalid option: '$1'";;
> +  esac
> +  shift
> +done
> +
> +if test $color_tests = yes; then
> +  # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
> +  red='' # Red.
> +  grn='' # Green.
> +  lgn='' # Light green.
> +  blu='' # Blue.
> +  mgn='' # Magenta.
> +  std=''     # No color.
> +else
> +  red= grn= lgn= blu= mgn= std=
> +fi
> +
> +do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
> +trap "st=129; $do_exit" 1
> +trap "st=130; $do_exit" 2
> +trap "st=141; $do_exit" 13
> +trap "st=143; $do_exit" 15
> +
> +# Test script is run here.
> +"$@" >$log_file 2>&1
> +estatus=$?
> +if test $enable_hard_errors = no && test $estatus -eq 99; then
> +  estatus=1
> +fi
> +
> +case $estatus:$expect_failure in
> +  0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
> +  0:*)   col=$grn res=PASS  recheck=no  gcopy=no;;
> +  77:*)  col=$blu res=SKIP  recheck=no  gcopy=yes;;
> +  99:*)  col=$mgn res=ERROR recheck=yes gcopy=yes;;
> +  *:yes) col=$lgn res=XFAIL recheck=no  gcopy=yes;;
> +  *:*)   col=$red res=FAIL  recheck=yes gcopy=yes;;
> +esac
> +
> +# Report outcome to console.
> +echo "${col}${res}${std}: $test_name"
> +
> +# Register the test result, and other relevant metadata.
> +echo ":test-result: $res" > $trs_file
> +echo ":global-test-result: $res" >> $trs_file
> +echo ":recheck: $recheck" >> $trs_file
> +echo ":copy-in-global-log: $gcopy" >> $trs_file
> +
> +# Local Variables:
> +# mode: shell-script
> +# sh-indentation: 2
> +# eval: (add-hook 'write-file-hooks 'time-stamp)
> +# time-stamp-start: "scriptversion="
> +# time-stamp-format: "%:y-%02m-%02d.%02H"
> +# time-stamp-time-zone: "UTC"
> +# time-stamp-end: "; # UTC"
> +# End:
> Index: conf/Makefile.in
> ===================================================================
> RCS file: /cvs/xenocara/driver/xf86-input-synaptics/conf/Makefile.in,v
> retrieving revision 1.6
> diff -u -p -r1.6 Makefile.in
> --- conf/Makefile.in 2 Jun 2013 18:17:24 -0000 1.6
> +++ conf/Makefile.in 8 May 2014 18:28:32 -0000
> @@ -209,6 +209,8 @@ PACKAGE_URL = @PACKAGE_URL@
>  PACKAGE_VERSION = @PACKAGE_VERSION@
>  PATH_SEPARATOR = @PATH_SEPARATOR@
>  PKG_CONFIG = @PKG_CONFIG@
> +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
> +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
>  RANLIB = @RANLIB@
>  SED = @SED@
>  SET_MAKE = @SET_MAKE@
> Index: include/Makefile.in
> ===================================================================
> RCS file: /cvs/xenocara/driver/xf86-input-synaptics/include/Makefile.in,v
> retrieving revision 1.6
> diff -u -p -r1.6 Makefile.in
> --- include/Makefile.in 2 Jun 2013 18:17:24 -0000 1.6
> +++ include/Makefile.in 8 May 2014 18:28:32 -0000
> @@ -209,6 +209,8 @@ PACKAGE_URL = @PACKAGE_URL@
>  PACKAGE_VERSION = @PACKAGE_VERSION@
>  PATH_SEPARATOR = @PATH_SEPARATOR@
>  PKG_CONFIG = @PKG_CONFIG@
> +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
> +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
>  RANLIB = @RANLIB@
>  SED = @SED@
>  SET_MAKE = @SET_MAKE@
> Index: include/synaptics-properties.h
> ===================================================================
> RCS file: /cvs/xenocara/driver/xf86-input-synaptics/include/synaptics-properties.h,v
> retrieving revision 1.5
> diff -u -p -r1.5 synaptics-properties.h
> --- include/synaptics-properties.h 2 Jun 2013 18:17:24 -0000 1.5
> +++ include/synaptics-properties.h 8 May 2014 18:28:32 -0000
> @@ -116,6 +116,9 @@
>  #define SYNAPTICS_PROP_CIRCULAR_SCROLLING_TRIGGER "Synaptics Circular Scrolling Trigger"
>  
>  /* 8 bit (BOOL) */
> +#define SYNAPTICS_PROP_CIRCULAR_PAD "Synaptics Circular Pad"
> +
> +/* 8 bit (BOOL) */
>  #define SYNAPTICS_PROP_PALM_DETECT "Synaptics Palm Detection"
>  
>  /* 32 bit, 2 values, width, z */
> Index: man/Makefile.in
> ===================================================================
> RCS file: /cvs/xenocara/driver/xf86-input-synaptics/man/Makefile.in,v
> retrieving revision 1.7
> diff -u -p -r1.7 Makefile.in
> --- man/Makefile.in 2 Jun 2013 18:17:24 -0000 1.7
> +++ man/Makefile.in 8 May 2014 18:28:32 -0000
> @@ -210,6 +210,8 @@ PACKAGE_URL = @PACKAGE_URL@
>  PACKAGE_VERSION = @PACKAGE_VERSION@
>  PATH_SEPARATOR = @PATH_SEPARATOR@
>  PKG_CONFIG = @PKG_CONFIG@
> +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
> +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
>  RANLIB = @RANLIB@
>  SED = @SED@
>  SET_MAKE = @SET_MAKE@
> Index: man/synaptics.man
> ===================================================================
> RCS file: /cvs/xenocara/driver/xf86-input-synaptics/man/synaptics.man,v
> retrieving revision 1.5
> diff -u -p -r1.5 synaptics.man
> --- man/synaptics.man 2 Jun 2013 18:17:24 -0000 1.5
> +++ man/synaptics.man 8 May 2014 18:28:33 -0000
> @@ -198,6 +198,41 @@ Default: 0.5 percent of the diagonal or
>  The minimum vertical HW distance required to generate motion events. See
>  \fBHorizHysteresis\fR.
>  .TP
> +.BI "Option \*qUpDownScrolling\*q \*q" boolean \*q
> +If on, the up/down buttons generate button 4/5 events.
> +.
> +If off, the up button generates a double click and the down button
> +generates a button 2 event. This option is only available for touchpads with
> +physical scroll buttons.
> +Property: "Synaptics Button Scrolling"
> +.TP
> +.BI "Option \*qLeftRightScrolling\*q \*q" boolean \*q
> +If on, the left/right buttons generate button 6/7 events.
> +.
> +If off, the left/right buttons both generate button 2 events.
> +This option is only available for touchpads with physical scroll buttons.
> +Property: "Synaptics Button Scrolling"
> +.TP
> +.BI "Option \*qUpDownScrollRepeat\*q \*q" boolean \*q
> +If on, and the up/down buttons are used for scrolling
> +(\fBUpDownScrolling\fR), these buttons will send auto-repeating 4/5 events,
> +with the delay between repeats determined by \fBScrollButtonRepeat\fR.
> +This option is only available for touchpads with physical scroll buttons.
> +Property: "Synaptics Button Scrolling Repeat"
> +.TP
> +.BI "Option \*qLeftRightScrollRepeat\*q \*q" boolean \*q
> +If on, and the left/right buttons are used for scrolling
> +(\fBLeftRightScrolling\fR), these buttons will send auto-repeating 6/7 events,
> +with the delay between repeats determined by \fBScrollButtonRepeat\fR.
> +This option is only available for touchpads with physical scroll buttons.
> +Property: "Synaptics Button Scrolling Repeat"
> +.TP
> +.BI "Option \*qScrollButtonRepeat\*q \*q" integer \*q
> +The number of milliseconds between repeats of button events 4-7 from the
> +up/down/left/right scroll buttons.
> +This option is only available for touchpads with physical scroll buttons.
> +Property: "Synaptics Button Scrolling Time"
> +.TP
>  .BI "Option \*qEmulateMidButtonTime\*q \*q" integer \*q
>  Maximum time (in milliseconds) for middle button emulation. Property:
>  "Synaptics Middle Button Timeout"
> @@ -316,6 +351,13 @@ l l.
>  .TE
>  Property: "Synaptics Circular Scrolling Trigger"
>  .TP
> +.BI "Option \*qCircularPad\*q \*q" boolean \*q
> +.
> +Instead of being a rectangle, the edge is the ellipse enclosed by the
> +Left/Right/Top/BottomEdge parameters.
> +.
> +For circular touchpads. Property: "Synaptics Circular Pad"
> +.TP
>  .BI "Option \*qPalmDetect\*q \*q" boolean \*q
>  If palm detection should be enabled.
>  .
> @@ -543,9 +585,6 @@ effect on scrolling speed.
>  Scrolling speed is determined solely from the VertScrollDelta and
>  HorizScrollDelta parameters.
>  .
> -To disable vertical or horizontal scrolling, set VertScrollDelta or
> -HorizScrollDelta to zero.
> -.
>  To invert the direction of vertical or horizontal scrolling, set
>  VertScrollDelta or HorizScrollDelta to a negative value.
>  .
> @@ -733,6 +772,10 @@ FLOAT, 4 values, min, max, accel, <depre
>  8 bit (BOOL), 2 values, updown, leftright.
>  
>  .TP 7
> +.BI "Synaptics Button Scrolling Repeat"
> +8 bit (BOOL), 2 values, updown, leftright.
> +
> +.TP 7
>  .BI "Synaptics Button Scrolling Time"
>  32 bit.
>  
> @@ -894,17 +937,6 @@ The following options are no longer part
>  .TP
>  .BI "Option \*qEdgeMotionUseAlways\*q \*q" boolean \*q
>  .TP
> -.BI "Option \*qUpDownScrolling\*q \*q" boolean \*q
> -.TP
> -.BI "Option \*qLeftRightScrolling\*q \*q" boolean \*q
> -.TP
> -.BI "Option \*qUpDownScrollRepeat\*q \*q" boolean \*q
> -.TP
> -.BI "Option \*qLeftRightScrollRepeat\*q \*q" boolean \*q
> -.TP
> -.BI "Option \*qScrollButtonRepeat\*q \*q" integer \*q
> -.TP
> -.BI "Option \*qCircularPad\*q \*q" boolean \*q
>  
>  .SH "AUTHORS"
>  .LP
> Index: src/Makefile.in
> ===================================================================
> RCS file: /cvs/xenocara/driver/xf86-input-synaptics/src/Makefile.in,v
> retrieving revision 1.6
> diff -u -p -r1.6 Makefile.in
> --- src/Makefile.in 2 Jun 2013 18:17:24 -0000 1.6
> +++ src/Makefile.in 8 May 2014 18:28:33 -0000
> @@ -266,6 +266,8 @@ PACKAGE_URL = @PACKAGE_URL@
>  PACKAGE_VERSION = @PACKAGE_VERSION@
>  PATH_SEPARATOR = @PATH_SEPARATOR@
>  PKG_CONFIG = @PKG_CONFIG@
> +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
> +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
>  RANLIB = @RANLIB@
>  SED = @SED@
>  SET_MAKE = @SET_MAKE@
> Index: src/eventcomm.c
> ===================================================================
> RCS file: /cvs/xenocara/driver/xf86-input-synaptics/src/eventcomm.c,v
> retrieving revision 1.7
> diff -u -p -r1.7 eventcomm.c
> --- src/eventcomm.c 2 Jun 2013 18:17:24 -0000 1.7
> +++ src/eventcomm.c 8 May 2014 18:28:33 -0000
> @@ -76,6 +76,7 @@ struct eventcomm_proto_data {
>      int cur_slot;
>      ValuatorMask **last_mt_vals;
>      int num_touches;
> +    int *tracking_ids;
>  };
>  
>  struct eventcomm_proto_data *
> @@ -98,7 +99,7 @@ last_mt_vals_slot(const SynapticsPrivate
>  {
>      struct eventcomm_proto_data *proto_data =
>          (struct eventcomm_proto_data *) priv->proto_data;
> -    int value = proto_data->cur_slot - proto_data->mtdev->caps.slot.minimum;
> +    int value = proto_data->cur_slot;
>  
>      return value < priv->num_slots ? value : -1;
>  }
> @@ -125,6 +126,9 @@ UninitializeTouch(InputInfoPtr pInfo)
>      mtdev_close_delete(proto_data->mtdev);
>      proto_data->mtdev = NULL;
>      proto_data->num_touches = 0;
> +
> +    free(proto_data->tracking_ids);
> +    proto_data->tracking_ids = NULL;
>  }
>  
>  static void
> @@ -156,9 +160,18 @@ InitializeTouch(InputInfoPtr pInfo)
>          return;
>      }
>  
> +    proto_data->tracking_ids = calloc(priv->num_slots, sizeof(int));
> +    if (!proto_data->tracking_ids) {
> +        xf86IDrvMsg(pInfo, X_WARNING, "failed to allocate tracking ID array\n");
> +        UninitializeTouch(pInfo);
> +        return;
> +    }
> +
>      for (i = 0; i < priv->num_slots; i++) {
>          int j;
>  
> +        proto_data->tracking_ids[i] = -1;
> +
>          proto_data->last_mt_vals[i] = valuator_mask_new(4 + priv->num_mt_axes);
>          if (!proto_data->last_mt_vals[i]) {
>              xf86IDrvMsg(pInfo, X_WARNING,
> @@ -206,6 +219,7 @@ static Bool
>  EventDeviceOffHook(InputInfoPtr pInfo)
>  {
>      UninitializeTouch(pInfo);
> +    SYSCALL(ioctl(pInfo->fd, EVIOCGRAB, (pointer) 0));
>  
>      return Success;
>  }
> @@ -554,7 +568,24 @@ EventProcessTouchEvent(InputInfoPtr pInf
>          if (hw->slot_state[slot_index] == SLOTSTATE_OPEN_EMPTY)
>              hw->slot_state[slot_index] = SLOTSTATE_UPDATE;
>          if (ev->code == ABS_MT_TRACKING_ID) {
> -            if (ev->value >= 0) {
> +            int old_tracking_id = proto_data->tracking_ids[slot_index];
> +
> +            /* We don't have proper SYN_DROPPED handling in
> +               synaptics < 1.8. This is a poor man's version that covers the
> +               worst bug we're seeing: touch points starting/stopping during
> +               SYN_DROPPED. There can only be one touchpoint per slot,
> +               identified by the tracking ID. Make sure that we only ever
> +               have a single touch point open per slot.
> +             */
> +            if (ev->value != -1 && old_tracking_id != -1) {
> +                /* Our touch terminated during SYN_DROPPED, now we have a
> +                   new touch starting in the same slot but ours is still
> +                   open. Do nothing, just continue with the old touch */
> +            } else if (ev->value == -1 && old_tracking_id == -1) {
> +                /* A new touch started during SYN_DROPPED, now we have that
> +                   touch terminating. Do nothing, we don't have that touch
> +                   open */
> +            } else if (ev->value >= 0) {
>                  hw->slot_state[slot_index] = SLOTSTATE_OPEN;
>                  proto_data->num_touches++;
>                  valuator_mask_copy(hw->mt_mask[slot_index],
> @@ -564,6 +595,8 @@ EventProcessTouchEvent(InputInfoPtr pInf
>                  hw->slot_state[slot_index] = SLOTSTATE_CLOSE;
>                  proto_data->num_touches--;
>              }
> +
> +            proto_data->tracking_ids[slot_index] = ev->value;
>          }
>          else {
>              ValuatorMask *mask = proto_data->last_mt_vals[slot_index];
> @@ -807,8 +840,7 @@ event_query_touch(InputInfoPtr pInfo)
>          };
>  
>          if (mtdev->caps.slot.maximum > 0)
> -            priv->max_touches = mtdev->caps.slot.maximum -
> -                mtdev->caps.slot.minimum + 1;
> +            priv->max_touches = mtdev->caps.slot.maximum + 1;
>  
>          priv->touch_axes = malloc(priv->num_mt_axes *
>                                    sizeof(SynapticsTouchAxisRec));
> Index: src/properties.c
> ===================================================================
> RCS file: /cvs/xenocara/driver/xf86-input-synaptics/src/properties.c,v
> retrieving revision 1.6
> diff -u -p -r1.6 properties.c
> --- src/properties.c 2 Jun 2013 18:17:24 -0000 1.6
> +++ src/properties.c 8 May 2014 18:28:33 -0000
> @@ -68,6 +68,9 @@ Atom prop_speed = 0;
>  Atom prop_edgemotion_pressure = 0;
>  Atom prop_edgemotion_speed = 0;
>  Atom prop_edgemotion_always = 0;
> +Atom prop_buttonscroll = 0;
> +Atom prop_buttonscroll_repeat = 0;
> +Atom prop_buttonscroll_time = 0;
>  Atom prop_off = 0;
>  Atom prop_lockdrags = 0;
>  Atom prop_lockdrags_time = 0;
> @@ -247,6 +250,22 @@ InitDeviceProperties(InputInfoPtr pInfo)
>      fvalues[3] = 0;
>      prop_speed = InitFloatAtom(pInfo->dev, SYNAPTICS_PROP_SPEED, 4, fvalues);
>  
> +    if (priv->has_scrollbuttons) {
> +        values[0] = para->updown_button_scrolling;
> +        values[1] = para->leftright_button_scrolling;
> +        prop_buttonscroll =
> +            InitAtom(pInfo->dev, SYNAPTICS_PROP_BUTTONSCROLLING, 8, 2, values);
> +
> +        values[0] = para->updown_button_repeat;
> +        values[1] = para->leftright_button_repeat;
> +        prop_buttonscroll_repeat =
> +            InitAtom(pInfo->dev, SYNAPTICS_PROP_BUTTONSCROLLING_REPEAT, 8, 2,
> +                     values);
> +        prop_buttonscroll_time =
> +            InitAtom(pInfo->dev, SYNAPTICS_PROP_BUTTONSCROLLING_TIME, 32, 1,
> +                     &para->scroll_button_repeat);
> +    }
> +
>      prop_off =
>          InitAtom(pInfo->dev, SYNAPTICS_PROP_OFF, 8, 1, &para->touchpad_off);
>      prop_lockdrags =
> @@ -276,6 +295,9 @@ InitDeviceProperties(InputInfoPtr pInfo)
>      prop_circscroll_trigger =
>          InitAtom(pInfo->dev, SYNAPTICS_PROP_CIRCULAR_SCROLLING_TRIGGER, 8, 1,
>                   &para->circular_trigger);
> +    prop_circpad =
> +        InitAtom(pInfo->dev, SYNAPTICS_PROP_CIRCULAR_PAD, 8, 1,
> +                 &para->circular_pad);
>      prop_palm =
>          InitAtom(pInfo->dev, SYNAPTICS_PROP_PALM_DETECT, 8, 1,
>                   &para->palm_detect);
> @@ -518,6 +540,43 @@ SetProperty(DeviceIntPtr dev, Atom prope
>          para->max_speed = speed[1];
>          para->accl = speed[2];
>      }
> +    else if (property == prop_buttonscroll) {
> +        BOOL *scroll;
> +
> +        if (!priv->has_scrollbuttons)
> +            return BadMatch;
> +
> +        if (prop->size != 2 || prop->format != 8 || prop->type != XA_INTEGER)
> +            return BadMatch;
> +
> +        scroll = (BOOL *) prop->data;
> +        para->updown_button_scrolling = scroll[0];
> +        para->leftright_button_scrolling = scroll[1];
> +
> +    }
> +    else if (property == prop_buttonscroll_repeat) {
> +        BOOL *repeat;
> +
> +        if (!priv->has_scrollbuttons)
> +            return BadMatch;
> +
> +        if (prop->size != 2 || prop->format != 8 || prop->type != XA_INTEGER)
> +            return BadMatch;
> +
> +        repeat = (BOOL *) prop->data;
> +        para->updown_button_repeat = repeat[0];
> +        para->leftright_button_repeat = repeat[1];
> +    }
> +    else if (property == prop_buttonscroll_time) {
> +        if (!priv->has_scrollbuttons)
> +            return BadMatch;
> +
> +        if (prop->size != 1 || prop->format != 32 || prop->type != XA_INTEGER)
> +            return BadMatch;
> +
> +        para->scroll_button_repeat = *(INT32 *) prop->data;
> +
> +    }
>      else if (property == prop_off) {
>          CARD8 off;
>  
> @@ -610,6 +669,12 @@ SetProperty(DeviceIntPtr dev, Atom prope
>          para->circular_trigger = trigger;
>  
>      }
> +    else if (property == prop_circpad) {
> +        if (prop->size != 1 || prop->format != 8 || prop->type != XA_INTEGER)
> +            return BadMatch;
> +
> +        para->circular_pad = *(BOOL *) prop->data;
> +    }
>      else if (property == prop_palm) {
>          if (prop->size != 1 || prop->format != 8 || prop->type != XA_INTEGER)
>              return BadMatch;
> @@ -649,6 +714,19 @@ SetProperty(DeviceIntPtr dev, Atom prope
>  
>          para->press_motion_min_z = press[0];
>          para->press_motion_max_z = press[1];
> +    }
> +    else if (property == prop_pressuremotion_factor) {
> +        float *press;
> +
> +        if (prop->size != 2 || prop->format != 32 || prop->type != float_type)
> +            return BadMatch;
> +
> +        press = (float *) prop->data;
> +        if (press[0] > press[1])
> +            return BadValue;
> +
> +        para->press_motion_min_factor = press[0];
> +        para->press_motion_max_factor = press[1];
>      }
>      else if (property == prop_grab) {
>          if (prop->size != 1 || prop->format != 8 || prop->type != XA_INTEGER)
> Index: src/synaptics.c
> ===================================================================
> RCS file: /cvs/xenocara/driver/xf86-input-synaptics/src/synaptics.c,v
> retrieving revision 1.7
> diff -u -p -r1.7 synaptics.c
> --- src/synaptics.c 2 Jun 2013 18:17:24 -0000 1.7
> +++ src/synaptics.c 8 May 2014 18:28:36 -0000
> @@ -133,9 +133,11 @@ static int DeviceOff(DeviceIntPtr);
>  static int DeviceClose(DeviceIntPtr);
>  static Bool QueryHardware(InputInfoPtr);
>  static void ReadDevDimensions(InputInfoPtr);
> +#ifndef NO_DRIVER_SCALING
>  static void ScaleCoordinates(SynapticsPrivate * priv,
>                               struct SynapticsHwState *hw);
>  static void CalculateScalingCoeffs(SynapticsPrivate * priv);
> +#endif
>  static void SanitizeDimensions(InputInfoPtr pInfo);
>  
>  void InitDeviceProperties(InputInfoPtr pInfo);
> @@ -670,6 +672,20 @@ set_default_parameters(InputInfoPtr pInf
>      pars->scroll_twofinger_horiz =
>          xf86SetBoolOption(opts, "HorizTwoFingerScroll", horizTwoFingerScroll);
>      pars->touchpad_off = xf86SetIntOption(opts, "TouchpadOff", TOUCHPAD_ON);
> +
> +    if (priv->has_scrollbuttons) {
> +        pars->updown_button_scrolling =
> +            xf86SetBoolOption(opts, "UpDownScrolling", TRUE);
> +        pars->leftright_button_scrolling =
> +            xf86SetBoolOption(opts, "LeftRightScrolling", TRUE);
> +        pars->updown_button_repeat =
> +            xf86SetBoolOption(opts, "UpDownScrollRepeat", TRUE);
> +        pars->leftright_button_repeat =
> +            xf86SetBoolOption(opts, "LeftRightScrollRepeat", TRUE);
> +    }
> +    pars->scroll_button_repeat =
> +        xf86SetIntOption(opts, "ScrollButtonRepeat", 100);
> +
>      pars->locked_drags = xf86SetBoolOption(opts, "LockedDrags", FALSE);
>      pars->locked_drag_time = xf86SetIntOption(opts, "LockedDragTimeout", 5000);
>      pars->tap_action[RT_TAP] = xf86SetIntOption(opts, "RTCornerButton", 0);
> @@ -688,6 +704,7 @@ set_default_parameters(InputInfoPtr pInf
>      pars->circular_scrolling =
>          xf86SetBoolOption(opts, "CircularScrolling", FALSE);
>      pars->circular_trigger = xf86SetIntOption(opts, "CircScrollTrigger", 0);
> +    pars->circular_pad = xf86SetBoolOption(opts, "CircularPad", FALSE);
>      pars->palm_detect = xf86SetBoolOption(opts, "PalmDetect", FALSE);
>      pars->palm_min_width = xf86SetIntOption(opts, "PalmMinWidth", palmMinWidth);
>      pars->palm_min_z = xf86SetIntOption(opts, "PalmMinZ", palmMinZ);
> @@ -819,6 +836,8 @@ SynapticsPreInit(InputDriverPtr drv, Inp
>      xf86ErrorFVerb(6, "port opened successfully\n");
>  
>      /* initialize variables */
> +    priv->repeatButtons = 0;
> +    priv->nextRepeat = 0;
>      priv->count_packet_finger = 0;
>      priv->tap_state = TS_START;
>      priv->tap_button = 0;
> @@ -832,7 +851,10 @@ SynapticsPreInit(InputDriverPtr drv, Inp
>  
>      set_default_parameters(pInfo);
>  
> +#ifndef NO_DRIVER_SCALING
>      CalculateScalingCoeffs(priv);
> +#endif
> +
>  
>      priv->comm.buffer = XisbNew(pInfo->fd, INPUT_BUFFER_SIZE);
>  
> @@ -940,8 +962,10 @@ DeviceOn(DeviceIntPtr dev)
>      }
>  
>      if (priv->proto_ops->DeviceOnHook &&
> -        !priv->proto_ops->DeviceOnHook(pInfo, &priv->synpara))
> +        !priv->proto_ops->DeviceOnHook(pInfo, &priv->synpara)) {
> +        xf86CloseSerial(pInfo->fd);
>          return !Success;
> +    }
>  
>      priv->comm.buffer = XisbNew(pInfo->fd, INPUT_BUFFER_SIZE);
>      if (!priv->comm.buffer) {
> @@ -993,6 +1017,7 @@ SynapticsReset(SynapticsPrivate * priv)
>      priv->circ_scroll_on = FALSE;
>      priv->circ_scroll_vert = FALSE;
>      priv->mid_emu_state = MBE_OFF;
> +    priv->nextRepeat = 0;
>      priv->lastButtons = 0;
>      priv->prev_z = 0;
>      priv->prevFingers = 0;
> @@ -1309,6 +1334,32 @@ DeviceInit(DeviceIntPtr dev)
>      return !Success;
>  }
>  
> +/*
> + * Convert from absolute X/Y coordinates to a coordinate system where
> + * -1 corresponds to the left/upper edge and +1 corresponds to the
> + * right/lower edge.
> + */
> +static void
> +relative_coords(SynapticsPrivate * priv, int x, int y,
> +                double *relX, double *relY)
> +{
> +    int minX = priv->synpara.left_edge;
> +    int maxX = priv->synpara.right_edge;
> +    int minY = priv->synpara.top_edge;
> +    int maxY = priv->synpara.bottom_edge;
> +    double xCenter = (minX + maxX) / 2.0;
> +    double yCenter = (minY + maxY) / 2.0;
> +
> +    if ((maxX - xCenter > 0) && (maxY - yCenter > 0)) {
> +        *relX = (x - xCenter) / (maxX - xCenter);
> +        *relY = (y - yCenter) / (maxY - yCenter);
> +    }
> +    else {
> +        *relX = 0;
> +        *relY = 0;
> +    }
> +}
> +
>  /* return angle of point relative to center */
>  static double
>  angle(SynapticsPrivate * priv, int x, int y)
> @@ -1333,10 +1384,38 @@ diffa(double a1, double a2)
>  }
>  
>  static enum EdgeType
> +circular_edge_detection(SynapticsPrivate * priv, int x, int y)
> +{
> +    enum EdgeType edge = 0;
> +    double relX, relY, relR;
> +
> +    relative_coords(priv, x, y, &relX, &relY);
> +    relR = SQR(relX) + SQR(relY);
> +
> +    if (relR > 1) {
> +        /* we are outside the ellipse enclosed by the edge parameters */
> +        if (relX > M_SQRT1_2)
> +            edge |= RIGHT_EDGE;
> +        else if (relX < -M_SQRT1_2)
> +            edge |= LEFT_EDGE;
> +
> +        if (relY < -M_SQRT1_2)
> +            edge |= TOP_EDGE;
> +        else if (relY > M_SQRT1_2)
> +            edge |= BOTTOM_EDGE;
> +    }
> +
> +    return edge;
> +}
> +
> +static enum EdgeType
>  edge_detection(SynapticsPrivate * priv, int x, int y)
>  {
>      enum EdgeType edge = NO_EDGE;
>  
> +    if (priv->synpara.circular_pad)
> +        return circular_edge_detection(priv, x, y);
> +
>      if (x > priv->synpara.right_edge)
>          edge |= RIGHT_EDGE;
>      else if (x < priv->synpara.left_edge)
> @@ -2553,6 +2632,46 @@ handle_clickfinger(SynapticsPrivate * pr
>      }
>  }
>  
> +/* Adjust the hardware state according to the extra buttons (if the touchpad
> + * has any and not many touchpads do these days). These buttons are up/down
> + * tilt buttons and/or left/right buttons that then map into a specific
> + * function (or scrolling into).
> + */
> +static Bool
> +adjust_state_from_scrollbuttons(const InputInfoPtr pInfo,
> +                                struct SynapticsHwState *hw)
> +{
> +    SynapticsPrivate *priv = (SynapticsPrivate *) (pInfo->private);
> +    SynapticsParameters *para = &priv->synpara;
> +    Bool double_click = FALSE;
> +
> +    if (!para->updown_button_scrolling) {
> +        if (hw->down) {         /* map down button to middle button */
> +            hw->middle = TRUE;
> +        }
> +
> +        if (hw->up) {           /* up button generates double click */
> +            if (!priv->prev_up)
> +                double_click = TRUE;
> +        }
> +        priv->prev_up = hw->up;
> +
> +        /* reset up/down button events */
> +        hw->up = hw->down = FALSE;
> +    }
> +
> +    /* Left/right button scrolling, or middle clicks */
> +    if (!para->leftright_button_scrolling) {
> +        if (hw->multi[2] || hw->multi[3])
> +            hw->middle = TRUE;
> +
> +        /* reset left/right button events */
> +        hw->multi[2] = hw->multi[3] = FALSE;
> +    }
> +
> +    return double_click;
> +}
> +
>  static void
>  update_hw_button_state(const InputInfoPtr pInfo, struct SynapticsHwState *hw,
>                         struct SynapticsHwState *old, CARD32 now, int *delay)
> @@ -2632,6 +2751,66 @@ post_scroll_events(const InputInfoPtr pI
>          xf86PostMotionEventM(pInfo->dev, FALSE, priv->scroll_events_mask);
>  }
>  
> +static inline int
> +repeat_scrollbuttons(const InputInfoPtr pInfo,
> +                     const struct SynapticsHwState *hw,
> +                     int buttons, CARD32 now, int delay)
> +{
> +    SynapticsPrivate *priv = (SynapticsPrivate *) (pInfo->private);
> +    SynapticsParameters *para = &priv->synpara;
> +    int repeat_delay, timeleft;
> +    int rep_buttons = 0;
> +
> +    if (para->updown_button_repeat)
> +        rep_buttons |= (1 << (4 - 1)) | (1 << (5 - 1));
> +    if (para->leftright_button_repeat)
> +        rep_buttons |= (1 << (6 - 1)) | (1 << (7 - 1));
> +
> +    /* Handle auto repeat buttons */
> +    repeat_delay = clamp(para->scroll_button_repeat, SBR_MIN, SBR_MAX);
> +    if (((hw->up || hw->down) && para->updown_button_repeat &&
> +         para->updown_button_scrolling) ||
> +        ((hw->multi[2] || hw->multi[3]) && para->leftright_button_repeat &&
> +         para->leftright_button_scrolling)) {
> +        priv->repeatButtons = buttons & rep_buttons;
> +        if (!priv->nextRepeat) {
> +            priv->nextRepeat = now + repeat_delay * 2;
> +        }
> +    }
> +    else {
> +        priv->repeatButtons = 0;
> +        priv->nextRepeat = 0;
> +    }
> +
> +    if (priv->repeatButtons) {
> +        timeleft = TIME_DIFF(priv->nextRepeat, now);
> +        if (timeleft > 0)
> +            delay = MIN(delay, timeleft);
> +        if (timeleft <= 0) {
> +            int change, id;
> +
> +            change = priv->repeatButtons;
> +            while (change) {
> +                id = ffs(change);
> +                change &= ~(1 << (id - 1));
> +                if (id == 4)
> +                    priv->scroll.delta_y -= para->scroll_dist_vert;
> +                else if (id == 5)
> +                    priv->scroll.delta_y += para->scroll_dist_vert;
> +                else if (id == 6)
> +                    priv->scroll.delta_x -= para->scroll_dist_horiz;
> +                else if (id == 7)
> +                    priv->scroll.delta_x += para->scroll_dist_horiz;
> +            }
> +
> +            priv->nextRepeat = now + repeat_delay;
> +            delay = MIN(delay, repeat_delay);
> +        }
> +    }
> +
> +    return delay;
> +}
> +
>  /* Update the open slots and number of active touches */
>  static void
>  UpdateTouchState(InputInfoPtr pInfo, struct SynapticsHwState *hw)
> @@ -2828,6 +3007,8 @@ HandleState(InputInfoPtr pInfo, struct S
>  
>      /* these two just update hw->left, right, etc. */
>      update_hw_button_state(pInfo, hw, priv->old_hw_state, now, &delay);
> +    if (priv->has_scrollbuttons)
> +        double_click = adjust_state_from_scrollbuttons(pInfo, hw);
>  
>      /* now we know that these _coordinates_ aren't in the area.
>         invalid are: x, y, z, numFingers, fingerWidth
> @@ -2866,7 +3047,9 @@ HandleState(InputInfoPtr pInfo, struct S
>           * calculations that require unadjusted coordinates, for example edge
>           * detection.
>           */
> +#ifndef NO_DRIVER_SCALING
>          ScaleCoordinates(priv, hw);
> +#endif
>      }
>  
>      dx = dy = 0;
> @@ -2917,6 +3100,9 @@ HandleState(InputInfoPtr pInfo, struct S
>                              0, 0);
>      }
>  
> +    if (priv->has_scrollbuttons)
> +        delay = repeat_scrollbuttons(pInfo, hw, buttons, now, delay);
> +
>      /* Process scroll events only if coordinates are
>       * in the Synaptics Area
>       */
> @@ -2990,6 +3176,7 @@ QueryHardware(InputInfoPtr pInfo)
>      return TRUE;
>  }
>  
> +#ifndef NO_DRIVER_SCALING
>  static void
>  ScaleCoordinates(SynapticsPrivate * priv, struct SynapticsHwState *hw)
>  {
> @@ -3019,3 +3206,4 @@ CalculateScalingCoeffs(SynapticsPrivate
>          priv->vert_coeff = 1;
>      }
>  }
> +#endif
> Index: src/synapticsstr.h
> ===================================================================
> RCS file: /cvs/xenocara/driver/xf86-input-synaptics/src/synapticsstr.h,v
> retrieving revision 1.5
> diff -u -p -r1.5 synapticsstr.h
> --- src/synapticsstr.h 2 Jun 2013 18:17:24 -0000 1.5
> +++ src/synapticsstr.h 8 May 2014 18:28:36 -0000
> @@ -28,6 +28,14 @@
>  #define LogMessageVerbSigSafe xf86MsgVerb
>  #endif
>  
> +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) > 19
> +#define NO_DRIVER_SCALING 1
> +#elif GET_ABI_MAJOR(ABI_XINPUT_VERSION) == 19 && GET_ABI_MINOR(ABI_XINPUT_VERSION) >= 2
> +/* as of 19.2, the server takes device resolution into account when scaling
> +   relative events from abs device, so we must not scale in synaptics. */
> +#define NO_DRIVER_SCALING 1
> +#endif
> +
>  #ifdef DBG
>  #undef DBG
>  #endif
> @@ -47,6 +55,10 @@
>  #define SYNAPTICS_MAX_TOUCHES 10
>  #define SYN_MAX_BUTTONS 12      /* Max number of mouse buttons */
>  
> +/* Minimum and maximum values for scroll_button_repeat */
> +#define SBR_MIN 10
> +#define SBR_MAX 1000
> +
>  enum OffState {
>      TOUCHPAD_ON = 0,
>      TOUCHPAD_OFF = 1,
> @@ -160,6 +172,12 @@ typedef struct _SynapticsParameters {
>      Bool scroll_twofinger_horiz;        /* Enable/disable horizontal two-finger scrolling */
>      double min_speed, max_speed, accl;  /* movement parameters */
>  
> +    Bool updown_button_scrolling;       /* Up/Down-Button scrolling or middle/double-click */
> +    Bool leftright_button_scrolling;    /* Left/right-button scrolling, or two lots of middle button */
> +    Bool updown_button_repeat;  /* If up/down button being used to scroll, auto-repeat? */
> +    Bool leftright_button_repeat;       /* If left/right button being used to scroll, auto-repeat? */
> +    int scroll_button_repeat;   /* time, in milliseconds, between scroll events being
> +                                 * sent when holding down scroll buttons */
>      int touchpad_off;           /* Switches the touchpad off
>                                   * 0 : Not off
>                                   * 1 : Off
> @@ -172,6 +190,7 @@ typedef struct _SynapticsParameters {
>      Bool circular_scrolling;    /* Enable circular scrolling */
>      double scroll_dist_circ;    /* Scrolling angle radians */
>      int circular_trigger;       /* Trigger area for circular scrolling */
> +    Bool circular_pad;          /* Edge has an oval or circular shape */
>      Bool palm_detect;           /* Enable Palm Detection */
>      int palm_min_width;         /* Palm detection width */
>      int palm_min_z;             /* Palm detection depth */
> @@ -201,7 +220,7 @@ struct _SynapticsPrivateRec {
>  
>      const char *device;         /* device node */
>      CARD32 timer_time;          /* when timer last fired */
> -    OsTimerPtr timer;           /* for tap processing, etc */
> +    OsTimerPtr timer;           /* for up/down-button repeat, tap processing, etc */
>  
>      struct CommData comm;
>  
> @@ -246,12 +265,16 @@ struct _SynapticsPrivateRec {
>                                     False: Generate horizontal events */
>      double frac_x, frac_y;      /* absolute -> relative fraction */
>      enum MidButtonEmulation mid_emu_state;      /* emulated 3rd button */
> +    int repeatButtons;          /* buttons for repeat */
> +    int nextRepeat;             /* Time when to trigger next auto repeat event */
>      int lastButtons;            /* last state of the buttons */
>      int prev_z;                 /* previous z value, for palm detection */
>      int prevFingers;            /* previous numFingers, for transition detection */
>      int avg_width;              /* weighted average of previous fingerWidth values */
> +#ifndef NO_DRIVER_SCALING
>      double horiz_coeff;         /* normalization factor for x coordintes */
>      double vert_coeff;          /* normalization factor for y coordintes */
> +#endif
>  
>      int minx, maxx, miny, maxy; /* min/max dimensions as detected */
>      int minp, maxp, minw, maxw; /* min/max pressure and finger width as detected */
> Index: test/Makefile.in
> ===================================================================
> RCS file: /cvs/xenocara/driver/xf86-input-synaptics/test/Makefile.in,v
> retrieving revision 1.5
> diff -u -p -r1.5 Makefile.in
> --- test/Makefile.in 2 Jun 2013 18:17:24 -0000 1.5
> +++ test/Makefile.in 8 May 2014 18:28:37 -0000
> @@ -203,6 +203,8 @@ PACKAGE_URL = @PACKAGE_URL@
>  PACKAGE_VERSION = @PACKAGE_VERSION@
>  PATH_SEPARATOR = @PATH_SEPARATOR@
>  PKG_CONFIG = @PKG_CONFIG@
> +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
> +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
>  RANLIB = @RANLIB@
>  SED = @SED@
>  SET_MAKE = @SET_MAKE@
> Index: tools/Makefile.in
> ===================================================================
> RCS file: /cvs/xenocara/driver/xf86-input-synaptics/tools/Makefile.in,v
> retrieving revision 1.6
> diff -u -p -r1.6 Makefile.in
> --- tools/Makefile.in 2 Jun 2013 18:17:24 -0000 1.6
> +++ tools/Makefile.in 8 May 2014 18:28:37 -0000
> @@ -218,6 +218,8 @@ PACKAGE_URL = @PACKAGE_URL@
>  PACKAGE_VERSION = @PACKAGE_VERSION@
>  PATH_SEPARATOR = @PATH_SEPARATOR@
>  PKG_CONFIG = @PKG_CONFIG@
> +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
> +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
>  RANLIB = @RANLIB@
>  SED = @SED@
>  SET_MAKE = @SET_MAKE@
> Index: tools/synclient.c
> ===================================================================
> RCS file: /cvs/xenocara/driver/xf86-input-synaptics/tools/synclient.c,v
> retrieving revision 1.4
> diff -u -p -r1.4 synclient.c
> --- tools/synclient.c 2 Jun 2013 18:17:24 -0000 1.4
> +++ tools/synclient.c 8 May 2014 18:28:37 -0000
> @@ -50,6 +50,8 @@
>  #endif
>  
>  #define SYN_MAX_BUTTONS 12
> +#define SBR_MIN 10
> +#define SBR_MAX 1000
>  
>  union flong {                   /* Xlibs 64-bit property handling madness */
>      long l;
> @@ -98,6 +100,11 @@ static struct Parameter params[] = {
>      {"MinSpeed",              PT_DOUBLE, 0, 255.0,   SYNAPTICS_PROP_SPEED, 0, /*float */ 0},
>      {"MaxSpeed",              PT_DOUBLE, 0, 255.0,   SYNAPTICS_PROP_SPEED, 0, /*float */ 1},
>      {"AccelFactor",           PT_DOUBLE, 0, 1.0,   SYNAPTICS_PROP_SPEED, 0, /*float */ 2},
> +    {"UpDownScrolling",       PT_BOOL,   0, 1,     SYNAPTICS_PROP_BUTTONSCROLLING,  8, 0},
> +    {"LeftRightScrolling",    PT_BOOL,   0, 1,     SYNAPTICS_PROP_BUTTONSCROLLING,  8, 1},
> +    {"UpDownScrollRepeat",    PT_BOOL,   0, 1,     SYNAPTICS_PROP_BUTTONSCROLLING_REPEAT,   8, 0},
> +    {"LeftRightScrollRepeat", PT_BOOL,   0, 1,     SYNAPTICS_PROP_BUTTONSCROLLING_REPEAT,   8, 1},
> +    {"ScrollButtonRepeat",    PT_INT,    SBR_MIN , SBR_MAX, SYNAPTICS_PROP_BUTTONSCROLLING_TIME, 32, 0},
>      {"TouchpadOff",           PT_INT,    0, 2,     SYNAPTICS_PROP_OFF, 8, 0},
>      {"LockedDrags",           PT_BOOL,   0, 1,     SYNAPTICS_PROP_LOCKED_DRAGS, 8, 0},
>      {"LockedDragTimeout",     PT_INT,    0, 30000, SYNAPTICS_PROP_LOCKED_DRAGS_TIMEOUT, 32, 0},
> @@ -114,6 +121,7 @@ static struct Parameter params[] = {
>      {"CircularScrolling",     PT_BOOL,   0, 1,     SYNAPTICS_PROP_CIRCULAR_SCROLLING, 8, 0},
>      {"CircScrollDelta",       PT_DOUBLE, .01, 3,   SYNAPTICS_PROP_CIRCULAR_SCROLLING_DIST, 0 /* float */, 0},
>      {"CircScrollTrigger",     PT_INT,    0, 8,     SYNAPTICS_PROP_CIRCULAR_SCROLLING_TRIGGER, 8, 0},
> +    {"CircularPad",           PT_BOOL,   0, 1,     SYNAPTICS_PROP_CIRCULAR_PAD, 8, 0},
>      {"PalmDetect",            PT_BOOL,   0, 1,     SYNAPTICS_PROP_PALM_DETECT, 8, 0},
>      {"PalmMinWidth",          PT_INT,    0, 15,    SYNAPTICS_PROP_PALM_DIMENSIONS, 32, 0},
>      {"PalmMinZ",              PT_INT,    0, 255,   SYNAPTICS_PROP_PALM_DIMENSIONS, 32, 1},
>