summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac4
-rw-r--r--include/dix-config.h.in7
-rw-r--r--test/xi2/protocol-common.c12
3 files changed, 22 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index 30c0c5cd9..c6971889c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -217,10 +217,12 @@ AC_SUBST(DLOPEN_LIBS)
dnl Checks for library functions.
AC_CHECK_FUNCS([backtrace ffs geteuid getuid issetugid getresuid \
- getdtablesize getifaddrs getpeereid getpeerucred getzoneid \
+ getdtablesize getifaddrs getpeereid getpeerucred getprogname getzoneid \
mmap seteuid shmctl64 strncasecmp vasprintf vsnprintf walkcontext])
AC_REPLACE_FUNCS([strcasecmp strcasestr strlcat strlcpy strndup])
+AC_CHECK_DECLS([program_invocation_short_name], [], [], [[#include <errno.h>]])
+
dnl Find the math libary, then check for cbrt function in it.
AC_CHECK_LIB(m, sqrt)
AC_CHECK_FUNCS([cbrt])
diff --git a/include/dix-config.h.in b/include/dix-config.h.in
index f170c1c2f..1aa77a5eb 100644
--- a/include/dix-config.h.in
+++ b/include/dix-config.h.in
@@ -72,6 +72,10 @@
/* Define to 1 if you have the <dbm.h> header file. */
#undef HAVE_DBM_H
+/* Define to 1 if you have the declaration of `program_invocation_short_name', and
+ to 0 if you don't. */
+#undef HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME
+
/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
*/
#undef HAVE_DIRENT_H
@@ -100,6 +104,9 @@
/* Define to 1 if you have the `getpeerucred' function. */
#undef HAVE_GETPEERUCRED
+/* Define to 1 if you have the `getprogname' function. */
+#undef HAVE_GETPROGNAME
+
/* Define to 1 if you have the `getzoneid' function. */
#undef HAVE_GETZONEID
diff --git a/test/xi2/protocol-common.c b/test/xi2/protocol-common.c
index 64a5777d0..9265ba390 100644
--- a/test/xi2/protocol-common.c
+++ b/test/xi2/protocol-common.c
@@ -25,6 +25,7 @@
#include <dix-config.h>
#endif
+#include <errno.h>
#include <stdint.h>
#include "extinit.h" /* for XInputExtensionInit */
#include "exglobals.h"
@@ -139,6 +140,17 @@ init_devices(void)
struct devices local_devices;
int ret;
+ /*
+ * Put a unique name in display pointer so that when tests are run in
+ * parallel, their xkbcomp outputs to /tmp/server-<display>.xkm don't
+ * stomp on each other.
+ */
+#ifdef HAVE_GETPROGNAME
+ display = getprogname();
+#elif HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME
+ display = program_invocation_short_name;
+#endif
+
client = init_client(0, NULL);
AllocDevicePair(&client, "Virtual core", &local_devices.vcp, &local_devices.vck,