debian/changelog | 7 - debian/patches/series | 2 debian/patches/xmir.patch | 242 +++++++++++++++++++++++++++------------------- 3 files changed, 152 insertions(+), 99 deletions(-)
New commits: commit 0a38b9e027ff4c712254db5a50b1e2e2c7cfdb9b Author: Christopher James Halse Rogers <christopher.halse.rog...@canonical.com> Date: Fri Jul 4 16:16:41 2014 +1000 Changelog entry for XMir diff --git a/debian/changelog b/debian/changelog index 5bc9ea2..cad027b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,10 +1,13 @@ xorg-server (2:1.15.99.903-3ubuntu1) UNRELEASED; urgency=medium + [ Maarten Lankhorst ] * New upstream release. - Refresh patches. - - Disable xmir, for now. - -- Maarten Lankhorst <maarten.lankho...@ubuntu.com> Wed, 25 Jun 2014 12:57:16 +0200 + [ Christopher James Halse Rogers ] + * Refresh XMir patch + + -- Christopher James Halse Rogers <r...@ubuntu.com> Fri, 04 Jul 2014 10:40:30 +1000 xorg-server (2:1.15.99.903-3) experimental; urgency=medium commit 04dff2f45038b067f99935319aa8f40646546c88 Author: Christopher James Halse Rogers <christopher.halse.rog...@canonical.com> Date: Fri Jul 4 10:40:00 2014 +1000 Refresh xmir patch for 1.16 diff --git a/debian/patches/series b/debian/patches/series index f6b2b6d..5e74491 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -49,7 +49,7 @@ disable-rotation-transform-gpuscreens.patch pixman-validate.patch fix-ftbfs-ppc64el.patch -#xmir.patch +xmir.patch drm_device_keep_trying.patch xi2-resize-touch.patch mi-dont-process-disabled.patch diff --git a/debian/patches/xmir.patch b/debian/patches/xmir.patch index d8870de..f60216f 100644 --- a/debian/patches/xmir.patch +++ b/debian/patches/xmir.patch @@ -1,14 +1,16 @@ +diff --git a/configure.ac b/configure.ac +index e5387bf..ec171d9 100644 --- a/configure.ac +++ b/configure.ac -@@ -628,6 +628,7 @@ - AC_ARG_ENABLE(libdrm, AS_HELP_STRING([--enable-libdrm], [Build Xorg with libdrm support (default: enabled)]), [DRM=$enableval],[DRM=yes]) - AC_ARG_ENABLE(clientids, AS_HELP_STRING([--disable-clientids], [Build Xorg with client ID tracking (default: enabled)]), [CLIENTIDS=$enableval], [CLIENTIDS=yes]) - AC_ARG_ENABLE(pciaccess, AS_HELP_STRING([--enable-pciaccess], [Build Xorg with pciaccess library (default: enabled)]), [PCI=$enableval], [PCI=yes]) -+AC_ARG_ENABLE(xmir, AS_HELP_STRING([--enable-xmir], [Build support for nesting in Mir (default: auto)]), [XMIR=$enableval], [XMIR=auto]) - AC_ARG_ENABLE(linux_acpi, AS_HELP_STRING([--disable-linux-acpi], [Disable building ACPI support on Linux (if available).]), [enable_linux_acpi=$enableval], [enable_linux_acpi=yes]) +@@ -627,6 +627,7 @@ AC_ARG_ENABLE(linux_acpi, AS_HELP_STRING([--disable-linux-acpi], [Disable buildi AC_ARG_ENABLE(linux_apm, AS_HELP_STRING([--disable-linux-apm], [Disable building APM support on Linux (if available).]), [enable_linux_apm=$enableval], [enable_linux_apm=yes]) + AC_ARG_ENABLE(systemd-logind, AS_HELP_STRING([--enable-systemd-logind], [Build systemd-logind support (default: auto)]), [SYSTEMD_LOGIND=$enableval], [SYSTEMD_LOGIND=auto]) + AC_ARG_ENABLE(suid-wrapper, AS_HELP_STRING([--enable-suid-wrapper], [Build suid-root wrapper for legacy driver support on rootless xserver systems (default: no)]), [SUID_WRAPPER=$enableval], [SUID_WRAPPER=no]) ++AC_ARG_ENABLE(xmir, AS_HELP_STRING([--enable-xmir], [Build support for nesting in Mir (default: auto)]), [XMIR=$enableval], [XMIR=auto]) -@@ -1317,6 +1318,15 @@ + dnl DDXes. + AC_ARG_ENABLE(xorg, AS_HELP_STRING([--enable-xorg], [Build Xorg server (default: auto)]), [XORG=$enableval], [XORG=auto]) +@@ -1348,6 +1349,15 @@ if test "x$XINERAMA" = xyes; then SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES $XINERAMAPROTO" fi @@ -16,15 +18,15 @@ + PKG_CHECK_MODULES([XMIR], [mirclient], [XMIR=yes], [XMIR=no]) + AC_SUBST([XMIR_LIBS]) + AC_SUBST([XMIR_CFLAGS]) -+ AC_DEFINE(XMIR, 1, [Support Mir nested mode]) ++ AC_DEFINE(XMIR, 1, [Support wayland mode]) + SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES mirclient" -+fi ++fi +AM_CONDITIONAL(XMIR, [test "x$XMIR" = xyes]) + AM_CONDITIONAL(XACE, [test "x$XACE" = xyes]) if test "x$XACE" = xyes; then AC_DEFINE(XACE, 1, [Build X-ACE extension]) -@@ -2504,6 +2514,7 @@ +@@ -2573,6 +2583,7 @@ hw/xfree86/utils/Makefile hw/xfree86/utils/man/Makefile hw/xfree86/utils/cvt/Makefile hw/xfree86/utils/gtf/Makefile @@ -32,9 +34,11 @@ hw/dmx/config/Makefile hw/dmx/config/man/Makefile hw/dmx/doc/Makefile +diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am +index c5992c3..c9a077f 100644 --- a/hw/xfree86/Makefile.am +++ b/hw/xfree86/Makefile.am -@@ -30,15 +30,20 @@ +@@ -34,16 +34,20 @@ if INT10MODULE INT10_SUBDIR = int10 endif @@ -45,21 +49,23 @@ SUBDIRS = common ddc x86emu $(INT10_SUBDIR) os-support parser \ ramdac $(VGAHW_SUBDIR) loader modes $(DRI_SUBDIR) \ $(DRI2_SUBDIR) . $(VBE_SUBDIR) i2c dixmods \ -- fbdevhw shadowfb exa $(XF86UTILS_SUBDIR) doc man -+ fbdevhw shadowfb exa $(XF86UTILS_SUBDIR) doc man \ -+ $(XMIR_SUBDIR) + fbdevhw shadowfb exa $(XF86UTILS_SUBDIR) doc man \ +- $(GLAMOR_EGL_SUBDIR) ++ $(GLAMOR_EGL_SUBDIR) $(XMIR_SUBDIR) DIST_SUBDIRS = common ddc i2c x86emu int10 fbdevhw os-support \ parser ramdac shadowfb vbe vgahw \ loader dixmods dri dri2 exa modes \ -- utils doc man -+ utils doc man xmir +- utils doc man glamor_egl ++ utils doc man glamor_egl xmir bin_PROGRAMS = Xorg nodist_Xorg_SOURCES = sdksyms.c +diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c +index 2adef44..f8c3a7e 100644 --- a/hw/xfree86/common/xf86Config.c +++ b/hw/xfree86/common/xf86Config.c -@@ -118,6 +118,7 @@ +@@ -118,6 +118,7 @@ static ModuleDefault ModuleDefaults[] = { {.name = "fb",.toLoad = TRUE,.load_opt = NULL}, {.name = "shadow",.toLoad = TRUE,.load_opt = NULL}, #endif @@ -67,7 +73,7 @@ {.name = NULL,.toLoad = FALSE,.load_opt = NULL} }; -@@ -260,6 +261,17 @@ +@@ -272,6 +273,17 @@ xf86ModulelistFromConfig(void ***optlist) return NULL; } @@ -85,56 +91,37 @@ if (xf86configptr->conf_modules) { /* Walk the disable list and let people know what we've parsed to * not be loaded +diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c +index 35a673d..082e454 100644 --- a/hw/xfree86/common/xf86Events.c +++ b/hw/xfree86/common/xf86Events.c -@@ -105,8 +105,6 @@ - extern void (*xf86OSPMClose) (void); - #endif - --static void xf86VTSwitch(void); -- - /* - * Allow arbitrary drivers or other XFree86 code to register with our main - * Wakeup handler. -@@ -469,7 +467,7 @@ - - xf86AccessLeave(); /* We need this here, otherwise */ - -- if (!xf86VTSwitchAway()) -+ if (!xorgMir && !xf86VTSwitchAway()) - goto switch_failed; - - #ifdef XF86PM -@@ -528,7 +526,7 @@ - IHPtr ih; - - DebugF("xf86VTSwitch: Entering\n"); -- if (!xf86VTSwitchTo()) -+ if (!xorgMir && !xf86VTSwitchTo()) - return; - - #ifdef XF86PM -@@ -576,7 +574,7 @@ - * xf86VTSwitch -- - * Handle requests for switching the vt. - */ --static void -+_X_EXPORT void - xf86VTSwitch(void) +@@ -614,6 +614,10 @@ xf86VTSwitch(void) { DebugF("xf86VTSwitch()\n"); + ++ /* Host Mir server handles VTs for XMir */ ++ if (xorgMir) ++ return; ++ + #ifdef XFreeXDGA + if (!DGAVTSwitch()) + return; +diff --git a/hw/xfree86/common/xf86Globals.c b/hw/xfree86/common/xf86Globals.c +index 984c39b..9b23d9a 100644 --- a/hw/xfree86/common/xf86Globals.c +++ b/hw/xfree86/common/xf86Globals.c -@@ -206,3 +206,6 @@ +@@ -204,3 +204,6 @@ Bool xf86VidModeAllowNonLocal = FALSE; #endif RootWinPropPtr *xf86RegisteredPropertiesTable = NULL; Bool xorgHWAccess = FALSE; +Bool xorgMir = FALSE; +const char *mirID = NULL; +const char *mirSocket = NULL; +diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c +index e2b32a0..d942ffd 100644 --- a/hw/xfree86/common/xf86Helper.c +++ b/hw/xfree86/common/xf86Helper.c -@@ -100,7 +100,14 @@ +@@ -100,7 +100,14 @@ xf86DeleteDriver(int drvIndex) if (xf86DriverList[drvIndex]->module) UnloadModule(xf86DriverList[drvIndex]->module); free(xf86DriverList[drvIndex]); @@ -150,9 +137,11 @@ } } +diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c +index 5a45004..931381d 100644 --- a/hw/xfree86/common/xf86Init.c +++ b/hw/xfree86/common/xf86Init.c -@@ -557,7 +557,7 @@ +@@ -540,7 +540,7 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv) * needed at this early stage. */ @@ -161,12 +150,13 @@ xorgHWFlags flags = HW_IO; if (xf86DriverList[i]->Identify != NULL) -@@ -568,12 +568,21 @@ +@@ -551,12 +551,22 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv) GET_REQUIRED_HW_INTERFACES, &flags); + if (xorgMir && + (NEED_IO_ENABLED(flags) || !(flags & HW_SKIP_CONSOLE))) { ++ + ErrorF("Driver needs flags %lu, incompatible with nested, deleting.\n", flags); + xf86DeleteDriver(i); + continue; @@ -183,7 +173,7 @@ } if (xorgHWOpenConsole) -@@ -668,9 +677,13 @@ +@@ -644,9 +654,13 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv) } /* Remove (unload) drivers that are not required */ @@ -199,7 +189,7 @@ /* * At this stage we know how many screens there are. -@@ -1498,6 +1511,17 @@ +@@ -1479,6 +1493,17 @@ ddxProcessArgument(int argc, char **argv, int i) xf86Info.ShareVTs = TRUE; return 1; } @@ -217,7 +207,7 @@ /* OS-specific processing */ return xf86ProcessArgument(argc, argv, i); -@@ -1571,6 +1595,8 @@ +@@ -1552,6 +1577,8 @@ ddxUseMsg(void) ErrorF ("-novtswitch don't automatically switch VT at reset & exit\n"); ErrorF("-sharevts share VTs with another X server\n"); @@ -226,37 +216,41 @@ /* OS-specific usage */ xf86UseMsg(); ErrorF("\n"); +diff --git a/hw/xfree86/common/xf86Priv.h b/hw/xfree86/common/xf86Priv.h +index 6e374eb..226ae5d 100644 --- a/hw/xfree86/common/xf86Priv.h +++ b/hw/xfree86/common/xf86Priv.h -@@ -93,6 +93,9 @@ +@@ -91,6 +91,11 @@ extern _X_EXPORT int xf86NumScreens; extern _X_EXPORT const char *xf86VisualNames[]; extern _X_EXPORT int xf86Verbose; /* verbosity level */ extern _X_EXPORT int xf86LogVerbose; /* log file verbosity level */ ++extern _X_EXPORT Bool xorgHWAccess; +extern _X_EXPORT Bool xorgMir; +extern _X_EXPORT const char *mirID; +extern _X_EXPORT const char *mirSocket; ++ extern _X_EXPORT RootWinPropPtr *xf86RegisteredPropertiesTable; -@@ -149,6 +152,9 @@ - extern _X_EXPORT int (*xf86PMGetEventFromOs) (int fd, pmEvent * events, +@@ -148,6 +153,7 @@ extern _X_EXPORT int (*xf86PMGetEventFromOs) (int fd, pmEvent * events, int num); extern _X_EXPORT pmWait (*xf86PMConfirmEventToOs) (int fd, pmEvent event); -+extern _X_EXPORT void -+xf86VTSwitch(void); -+ ++ /* xf86Helper.c */ extern _X_EXPORT void + xf86LogInit(void); +diff --git a/hw/xfree86/ramdac/xf86Cursor.c b/hw/xfree86/ramdac/xf86Cursor.c +index fac6822..7becd5f 100644 --- a/hw/xfree86/ramdac/xf86Cursor.c +++ b/hw/xfree86/ramdac/xf86Cursor.c -@@ -58,7 +58,12 @@ +@@ -58,7 +58,12 @@ xf86InitCursor(ScreenPtr pScreen, xf86CursorInfoPtr infoPtr) xf86CursorScreenPtr ScreenPriv; miPointerScreenPtr PointPriv; - if (!xf86InitHardwareCursor(pScreen, infoPtr)) + infoPtr->pScrn = xf86ScreenToScrn(pScreen); -+ ++ + /* If we can't create a hardware cursor don't bother initialising HW cursor support */ + if (infoPtr->MaxWidth != 0 && + infoPtr->MaxHeight != 0 && @@ -264,9 +258,11 @@ return FALSE; if (!dixRegisterPrivateKey(&xf86CursorScreenKeyRec, PRIVATE_SCREEN, 0)) +diff --git a/hw/xfree86/ramdac/xf86HWCurs.c b/hw/xfree86/ramdac/xf86HWCurs.c +index 953c86a..d8994be 100644 --- a/hw/xfree86/ramdac/xf86HWCurs.c +++ b/hw/xfree86/ramdac/xf86HWCurs.c -@@ -114,8 +114,6 @@ +@@ -114,8 +114,6 @@ xf86InitHardwareCursor(ScreenPtr pScreen, xf86CursorInfoPtr infoPtr) infoPtr->RealizeCursor = RealizeCursorInterleave0; } @@ -275,6 +271,29 @@ return TRUE; } +diff --git a/hw/xfree86/xmir/#xmir.h# b/hw/xfree86/xmir/#xmir.h# +new file mode 100644 +index 0000000..1ca78b1 +--- /dev/null ++++ b/hw/xfree86/xmir/#xmir.h# +@@ -0,0 +1,14 @@ ++ ++typedef struct MirBufferInfo { ++ uint32_t name; ++ uint32_t stride; ++} MirBufferInfo; ++ ++typedef void (*XMirBufferReceivedProcPtr)(WindowPtr window, ++ MirBufferInfo *info); ++ ++typedef struct xmir_screen { ++ XMirBufferReceivedProcPtr BufferNotify; ++ MirSurface *root_surf; ++ RealizeWindowProcPtr RealizeWindow; ++} xmir_screen; +diff --git a/hw/xfree86/xmir/Makefile.am b/hw/xfree86/xmir/Makefile.am +new file mode 100644 +index 0000000..80715f8 --- /dev/null +++ b/hw/xfree86/xmir/Makefile.am @@ -0,0 +1,26 @@ @@ -304,6 +323,9 @@ + xmir-private.h + +sdk_HEADERS = xmir.h +diff --git a/hw/xfree86/xmir/xmir-output.c b/hw/xfree86/xmir/xmir-output.c +new file mode 100644 +index 0000000..6cfb9da --- /dev/null +++ b/hw/xfree86/xmir/xmir-output.c @@ -0,0 +1,678 @@ @@ -632,7 +654,7 @@ + const char *error_msg; + + if (mode->HDisplay == 0 || mode->VDisplay == 0) -+ return FALSE; ++ return FALSE; + + xf86Msg(X_INFO, "Initial configuration for crtc %p:\n", crtc); + xmir_dump_config(xmir_crtc->config); @@ -798,7 +820,7 @@ +static void +xmir_output_destroy(xf86OutputPtr xf86output) +{ -+ /* The MirDisplayOutput* in driver_private gets cleaned up by ++ /* The MirDisplayOutput* in driver_private gets cleaned up by + mir_display_config_destroy() */ +} + @@ -816,7 +838,7 @@ +}; + +static int -+xmir_visit_set_window_pixmap(WindowPtr window, void *data) ++xmir_visit_set_window_pixmap(WindowPtr window, void* data) +{ + struct xmir_visit_set_pixmap_window *visit = data; + @@ -895,7 +917,7 @@ + xmir_update_config(crtc_config); + + /* Trigger RANDR refresh */ -+ RRGetInfo(xf86ScrnToScreen(scrn), TRUE); ++ RRGetInfo(xf86ScrnToScreen(scrn), TRUE); +} + +static void @@ -982,9 +1004,12 @@ + + /* TODO: Use initial Mir state rather than setting up our own */ + xf86InitialConfiguration(scrn, TRUE); -+ ++ + return TRUE; +} +diff --git a/hw/xfree86/xmir/xmir-private.h b/hw/xfree86/xmir/xmir-private.h +new file mode 100644 +index 0000000..15d89f0 --- /dev/null +++ b/hw/xfree86/xmir/xmir-private.h @@ -0,0 +1,106 @@ @@ -1094,6 +1119,9 @@ +xmir_process_from_eventloop(void); + + #endif /* _MIR_PRIVATE_H */ +diff --git a/hw/xfree86/xmir/xmir-thread-proxy.c b/hw/xfree86/xmir/xmir-thread-proxy.c +new file mode 100644 +index 0000000..2e60aec --- /dev/null +++ b/hw/xfree86/xmir/xmir-thread-proxy.c @@ -0,0 +1,124 @@ @@ -1147,7 +1175,7 @@ +static int pipefds[2]; + +static void -+xmir_wakeup_handler(void *data, int err, void *read_mask) ++xmir_wakeup_handler(void* data, int err, void* read_mask) +{ + if (err >= 0 && FD_ISSET(pipefds[0], (fd_set *)read_mask)) + xmir_process_from_eventloop(); @@ -1190,7 +1218,7 @@ +} + +void -+xmir_post_to_eventloop(xmir_marshall_handler *handler, void *msg) ++xmir_post_to_eventloop(xmir_marshall_handler *handler, void *msg) +{ + ssize_t written; + const int total_size = sizeof *handler + handler->msg_size; @@ -1221,6 +1249,9 @@ + } +} + +diff --git a/hw/xfree86/xmir/xmir-window.c b/hw/xfree86/xmir/xmir-window.c +new file mode 100644 +index 0000000..18a19bf --- /dev/null +++ b/hw/xfree86/xmir/xmir-window.c @@ -0,0 +1,343 @@ @@ -1559,7 +1590,7 @@ + xmir->DestroyWindow = screen->DestroyWindow; + screen->DestroyWindow = xmir_destroy_window; + -+ xmir->submit_rendering_handler = ++ xmir->submit_rendering_handler = + xmir_register_handler(&xmir_handle_buffer_available, + sizeof (xmir_window *)); + if (xmir->submit_rendering_handler == NULL) @@ -1567,6 +1598,9 @@ + + return TRUE; +} +diff --git a/hw/xfree86/xmir/xmir.c b/hw/xfree86/xmir/xmir.c +new file mode 100644 +index 0000000..ceb81e1 --- /dev/null +++ b/hw/xfree86/xmir/xmir.c @@ -0,0 +1,263 @@ @@ -1621,7 +1655,7 @@ +#include <mir_toolkit/mir_client_library_drm.h> + +static DevPrivateKeyRec xmir_screen_private_key; -+/* ++/* + * We have only a single Mir connection, regardless of how many + * drivers load. + */ @@ -1704,13 +1738,13 @@ + Bool new_focus = *(Bool *)ctx; + xf86Msg(X_INFO, "[XMir] Handling focus event, new_focus = %s\n", new_focus ? "TRUE" : "FALSE"); + -+ /* TODO: Split xf86VTSwitch out so that we don't need to check xf86VTOwner*/ + /* TODO: Disable input on startup until we receive a usc ACK */ -+ if (new_focus && !xf86VTOwner()) -+ xf86VTSwitch(); -+ -+ if (!new_focus && xf86VTOwner()) -+ xf86VTSwitch(); ++ if (new_focus) { ++ xf86VTEnter(); ++ } ++ else { ++ xf86VTLeave(); ++ } +} + +static void xmir_handle_lifecycle_event(MirConnection *unused, MirLifecycleState state, void *ctx) @@ -1747,7 +1781,7 @@ + xf86Msg(X_WARNING, "xf86Cursor initialisation failed\n"); + + /* Hook up focus -> VT switch proxy */ -+ xmir->focus_event_handler = ++ xmir->focus_event_handler = + xmir_register_handler(&xmir_handle_focus_event, + sizeof(Bool)); + if (xmir->focus_event_handler == NULL) @@ -1769,7 +1803,7 @@ +_X_EXPORT void +xmir_screen_destroy(xmir_screen *xmir) +{ -+ ++ +} + +_X_EXPORT void @@ -1801,11 +1835,11 @@ + +_X_EXPORT XF86ModuleData xmirModuleData = { &VersRec, xMirSetup, xMirTeardown }; + -+static void * -+xMirSetup(void *module, void *opts, int *errmaj, int *errmin) ++static void* ++xMirSetup(void* module, void* opts, int *errmaj, int *errmin) +{ + static Bool setupDone = FALSE; -+ ++ + if (setupDone) { + if (errmaj) + *errmaj = LDR_ONCEONLY; @@ -1822,7 +1856,7 @@ + return NULL; + } + -+ xmir_init_thread_to_eventloop(); ++ xmir_init_thread_to_eventloop(); + + setupDone = TRUE; + @@ -1830,9 +1864,12 @@ +} + +static void -+xMirTeardown(void *module) ++xMirTeardown(void* module) +{ +} +diff --git a/hw/xfree86/xmir/xmir.h b/hw/xfree86/xmir/xmir.h +new file mode 100644 +index 0000000..78396a3 --- /dev/null +++ b/hw/xfree86/xmir/xmir.h @@ -0,0 +1,103 @@ @@ -1906,7 +1943,7 @@ + +_X_EXPORT void +xmir_screen_close(ScreenPtr screen, xmir_screen *xmir); -+ ++ +_X_EXPORT void +xmir_screen_destroy(xmir_screen *xmir); + @@ -1939,9 +1976,11 @@ +xmir_screen_for_each_damaged_window(xmir_screen *xmir, xmir_window_proc callback); + +#endif /* _XMIR_H */ +diff --git a/include/list.h b/include/list.h +index 455c670..c5f8d11 100644 --- a/include/list.h +++ b/include/list.h -@@ -184,6 +184,14 @@ +@@ -184,6 +184,14 @@ __xorg_list_del(struct xorg_list *prev, struct xorg_list *next) prev->next = next; } @@ -1956,6 +1995,8 @@ /** * Remove the element from the list it is in. Using this function will reset * the pointers to/from this element so it is removed from the list. It does +diff --git a/include/xorg-server.h.in b/include/xorg-server.h.in +index 8bf9d38..9bcfe7c 100644 --- a/include/xorg-server.h.in +++ b/include/xorg-server.h.in @@ -227,4 +227,7 @@ @@ -1966,19 +2007,25 @@ +#undef XMIR + #endif /* _XORG_SERVER_H_ */ +diff --git a/test/Makefile.am b/test/Makefile.am +index 32edc7a..39c86ca 100644 --- a/test/Makefile.am +++ b/test/Makefile.am -@@ -6,6 +6,9 @@ +@@ -6,7 +6,12 @@ if XORG # For now, requires xf86 ddx, could be adjusted to use another SUBDIRS += xi2 noinst_PROGRAMS += xkb input xtest misc fixes xfree86 hashtabletest os signal-logging touch +-endif ++ +if XMIR +noinst_PROGRAMS += xmir-thread-proxy +endif #XMIR - endif ++ ++endif #XORG check_LTLIBRARIES = libxservertest.la -@@ -38,6 +41,8 @@ + TESTS=$(noinst_PROGRAMS) +@@ -37,6 +42,8 @@ touch_LDADD=$(TEST_LDADD) signal_logging_LDADD=$(TEST_LDADD) hashtabletest_LDADD=$(TEST_LDADD) os_LDADD=$(TEST_LDADD) @@ -1987,6 +2034,9 @@ libxservertest_la_LIBADD = $(XSERVER_LIBS) if XORG +diff --git a/test/xmir-thread-proxy.c b/test/xmir-thread-proxy.c +new file mode 100644 +index 0000000..7cf19cf --- /dev/null +++ b/test/xmir-thread-proxy.c @@ -0,0 +1,154 @@ @@ -2126,7 +2176,7 @@ + + xmir_process_from_eventloop(); + -+ assert(check == NUM_THREADS); ++ assert(check == NUM_THREADS); +} + +static void -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/e1x2wnm-0000lk...@moszumanska.debian.org