diff options
-rw-r--r-- | configure.ac | 4 | ||||
-rw-r--r-- | include/dix-config.h.in | 7 | ||||
-rw-r--r-- | test/xi2/protocol-common.c | 12 |
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, |