diff options
author | Eamon Walsh <ewalsh@tycho.nsa.gov> | 2006-09-05 18:03:25 -0400 |
---|---|---|
committer | Eamon Walsh <ewalsh@moss-uranus.epoch.ncsc.mil> | 2006-09-05 18:03:25 -0400 |
commit | 0b81fccd2ee4e054e5cffb739de07460ff2c13f7 (patch) | |
tree | cd754982e30fc37bf8f36cd5dd873b07b278eb4e /hw | |
parent | 20c4ac6e038607ebbf6c04639670514c016d8597 (diff) | |
parent | c2813514cf7b1a36caa848cbc2ceef99cf2eb769 (diff) |
Merge branch 'master' into my-XACE-modular
Conflicts:
configure.ac
Diffstat (limited to 'hw')
31 files changed, 165 insertions, 130 deletions
diff --git a/hw/kdrive/ati/Makefile.am b/hw/kdrive/ati/Makefile.am index b23418129..3732d7d72 100644 --- a/hw/kdrive/ati/Makefile.am +++ b/hw/kdrive/ati/Makefile.am @@ -31,10 +31,6 @@ INCLUDES = \ bin_PROGRAMS = Xati -if TSLIB -TSLIB_FLAG = -lts -endif - noinst_LIBRARIES = libati.a libati_a_SOURCES = \ @@ -65,8 +61,12 @@ ATI_LIBS = \ Xati_LDADD = \ $(ATI_LIBS) \ @KDRIVE_LIBS@ \ - @XSERVER_LIBS@ \ - $(TSLIB_FLAG) + @XSERVER_LIBS@ + +Xati_DEPENDENCIES = \ + libati.a \ + $(FBDEV_LIBS) \ + $(VESA_LIBS) \ + $(DRI_LIBS) -Xati_DEPENDENCIES = $(ATI_LIBS) diff --git a/hw/kdrive/chips/Makefile.am b/hw/kdrive/chips/Makefile.am index e3080774b..80fb2ddea 100644 --- a/hw/kdrive/chips/Makefile.am +++ b/hw/kdrive/chips/Makefile.am @@ -5,10 +5,6 @@ INCLUDES = \ bin_PROGRAMS = Xchips -if TSLIB -TSLIB_FLAG = -lts -endif - noinst_LIBRARIES = libchips.a libchips_a_SOURCES = \ @@ -19,15 +15,16 @@ libchips_a_SOURCES = \ Xchips_SOURCES = \ chipsstub.c -CHIPS_LIBS = \ - libchips.a \ +CHIPS_LIBS = \ + libchips.a \ $(top_builddir)/hw/kdrive/vesa/libvesa.a \ @KDRIVE_LIBS@ Xchips_LDADD = \ $(CHIPS_LIBS) \ - @KDRIVE_LIBS@ \ - @XSERVER_LIBS@ \ - $(TSLIB_FLAG) + @KDRIVE_LIBS@ \ + @XSERVER_LIBS@ -Xchips_DEPENDENCIES = $(CHIPS_LIBS) @KDRIVE_LIBS@ +Xchips_DEPENDENCIES = \ + libchips.a \ + $(top_builddir)/hw/kdrive/vesa/libvesa.a diff --git a/hw/kdrive/ephyr/Makefile.am b/hw/kdrive/ephyr/Makefile.am index f423bfe40..8f51bbe08 100644 --- a/hw/kdrive/ephyr/Makefile.am +++ b/hw/kdrive/ephyr/Makefile.am @@ -5,11 +5,6 @@ INCLUDES = \ noinst_LIBRARIES = libxephyr.a libxephyr-hostx.a -if TSLIB -TSLIB_LIBS = -lts -endif - - bin_PROGRAMS = Xephyr libxephyr_a_SOURCES = \ @@ -34,11 +29,8 @@ Xephyr_LDADD = \ ../../../exa/libexa.la \ @KDRIVE_LIBS@ \ @KDRIVE_LIBS@ \ - $(TSLIB_LIBS) \ @XEPHYR_LIBS@ Xephyr_DEPENDENCIES = \ libxephyr.a \ - libxephyr-hostx.a \ - @KDRIVE_LIBS@ \ - ../../../exa/libexa.la + libxephyr-hostx.a diff --git a/hw/kdrive/epson/Makefile.am b/hw/kdrive/epson/Makefile.am index 0538f4c39..665d13651 100644 --- a/hw/kdrive/epson/Makefile.am +++ b/hw/kdrive/epson/Makefile.am @@ -4,10 +4,6 @@ INCLUDES = \ bin_PROGRAMS = Xepson -if TSLIB -TSLIB_FLAG = -lts -endif - noinst_LIBRARIES = libepson.a libepson_a_SOURCES = \ @@ -25,9 +21,8 @@ EPSON_LIBS = \ @KDRIVE_LIBS@ Xepson_LDADD = \ - $(EPSON_LIBS) \ + $(EPSON_LIBS) \ @KDRIVE_LIBS@ \ - @XSERVER_LIBS@ \ - $(TSLIB_FLAG) + @XSERVER_LIBS@ -Xepson_DEPENDENCIES = $(EPSON_LIBS) @KDRIVE_LIBS@ +Xepson_DEPENDENCIES = libepson.a diff --git a/hw/kdrive/fake/Makefile.am b/hw/kdrive/fake/Makefile.am index f3a6a3453..3a53e3dbb 100644 --- a/hw/kdrive/fake/Makefile.am +++ b/hw/kdrive/fake/Makefile.am @@ -28,6 +28,4 @@ Xfake_LDADD = \ @XSERVER_LIBS@ Xfake_DEPENDENCIES = \ - libfake.a \ - @KDRIVE_LIBS@ - + libfake.a diff --git a/hw/kdrive/fbdev/Makefile.am b/hw/kdrive/fbdev/Makefile.am index fce6df9f4..3a8c65bbb 100644 --- a/hw/kdrive/fbdev/Makefile.am +++ b/hw/kdrive/fbdev/Makefile.am @@ -6,10 +6,6 @@ noinst_LIBRARIES = libfbdev.a bin_PROGRAMS = Xfbdev -if TSLIB -TSLIB_FLAG = -lts -endif - libfbdev_a_SOURCES = \ fbdev.c \ fbdev.h @@ -20,10 +16,7 @@ Xfbdev_SOURCES = \ Xfbdev_LDADD = \ libfbdev.a \ @KDRIVE_LIBS@ \ - @XSERVER_LIBS@ \ - $(TSLIB_FLAG) + @XSERVER_LIBS@ Xfbdev_DEPENDENCIES = \ - libfbdev.a \ - @KDRIVE_LIBS@ - + libfbdev.a diff --git a/hw/kdrive/fbdev/fbdev.c b/hw/kdrive/fbdev/fbdev.c index 86384f0a4..20bf75800 100644 --- a/hw/kdrive/fbdev/fbdev.c +++ b/hw/kdrive/fbdev/fbdev.c @@ -33,16 +33,24 @@ extern int KdTsPhyScreen; +char *fbdevDevicePath = NULL; + Bool fbdevInitialize (KdCardInfo *card, FbdevPriv *priv) { int k; unsigned long off; - if ((priv->fd = open("/dev/fb0", O_RDWR)) < 0 && \ - (priv->fd = open("/dev/fb/0", O_RDWR)) < 0) { - perror("Error opening /dev/fb0"); - return FALSE; - } + + if (fbdevDevicePath == NULL) + fbdevDevicePath = "/dev/fb0"; + + if ((priv->fd = open(fbdevDevicePath, O_RDWR)) < 0) + { + ErrorF("Error opening framebuffer %s: %s\n", + fbdevDevicePath, strerror(errno)); + return FALSE; + } + /* quiet valgrind */ memset (&priv->fix, '\0', sizeof (priv->fix)); if ((k=ioctl(priv->fd, FBIOGET_FSCREENINFO, &priv->fix)) < 0) { diff --git a/hw/kdrive/fbdev/fbdev.h b/hw/kdrive/fbdev/fbdev.h index d37b99597..b7951db72 100644 --- a/hw/kdrive/fbdev/fbdev.h +++ b/hw/kdrive/fbdev/fbdev.h @@ -53,6 +53,7 @@ typedef struct _fbdevScrPriv { } FbdevScrPriv; extern KdCardFuncs fbdevFuncs; +extern char* fbdevDevicePath; Bool fbdevInitialize (KdCardInfo *card, FbdevPriv *priv); diff --git a/hw/kdrive/fbdev/fbinit.c b/hw/kdrive/fbdev/fbinit.c index ba9d1c695..ee373276b 100644 --- a/hw/kdrive/fbdev/fbinit.c +++ b/hw/kdrive/fbdev/fbinit.c @@ -54,15 +54,28 @@ InitInput (int argc, char **argv) void ddxUseMsg (void) { - KdUseMsg(); + KdUseMsg(); + ErrorF("\nXfbdev Device Usage:\n"); + ErrorF("-fb path Framebuffer device to use. Defaults to /dev/fb0\n"); + ErrorF("\n"); } int ddxProcessArgument (int argc, char **argv, int i) { - return KdProcessArgument (argc, argv, i); -} + if (!strcmp (argv[i], "-fb")) + { + if (i+1 < argc) + { + fbdevDevicePath = argv[i+1]; + return 2; + } + UseMsg(); + exit(1); + } + return KdProcessArgument (argc, argv, i); +} KdCardFuncs fbdevFuncs = { diff --git a/hw/kdrive/i810/Makefile.am b/hw/kdrive/i810/Makefile.am index d676a6902..808d8f70b 100644 --- a/hw/kdrive/i810/Makefile.am +++ b/hw/kdrive/i810/Makefile.am @@ -6,9 +6,6 @@ bin_PROGRAMS = Xi810 noinst_LIBRARIES = libi810.a -if TSLIB -TSLIB_FLAG = -lts -endif libi810_a_SOURCES = \ i810_cursor.c \ @@ -29,7 +26,6 @@ I810_LIBS = \ Xi810_LDADD = \ $(I810_LIBS) \ @KDRIVE_LIBS@ \ - @XSERVER_LIBS@ \ - $(TSLIB_FLAG) + @XSERVER_LIBS@ -Xi810_DEPENDENCIES = $(I810_LIBS) @KDRIVE_LIBS@ +Xi810_DEPENDENCIES = libi810.a diff --git a/hw/kdrive/mach64/Makefile.am b/hw/kdrive/mach64/Makefile.am index 299565fdb..e924aef71 100644 --- a/hw/kdrive/mach64/Makefile.am +++ b/hw/kdrive/mach64/Makefile.am @@ -34,4 +34,4 @@ Xmach64_LDADD = \ $(TSLIB_FLAG) -Xmach64_DEPENDENCIES = $(MACH64_LIBS) @KDRIVE_LIBS@ +Xmach64_DEPENDENCIES = $(MACH64_LIBS) diff --git a/hw/kdrive/mga/Makefile.am b/hw/kdrive/mga/Makefile.am index 64d260ede..d8ebae920 100644 --- a/hw/kdrive/mga/Makefile.am +++ b/hw/kdrive/mga/Makefile.am @@ -32,4 +32,6 @@ Xmga_LDADD = \ @XSERVER_LIBS@ \ $(TSLIB_FLAG) -Xmga_DEPENDENCIES = $(MGA_LIBS) @KDRIVE_LIBS@ +Xmga_DEPENDENCIES = \ + libmga.a \ + $(top_builddir)/hw/kdrive/vesa/libvesa.a diff --git a/hw/kdrive/neomagic/Makefile.am b/hw/kdrive/neomagic/Makefile.am index b37bfc303..9f8e02919 100644 --- a/hw/kdrive/neomagic/Makefile.am +++ b/hw/kdrive/neomagic/Makefile.am @@ -16,10 +16,6 @@ INCLUDES = \ bin_PROGRAMS = Xneomagic -if TSLIB -TSLIB_FLAG = -lts -endif - noinst_LIBRARIES = libneomagic.a libneomagic_a_SOURCES = \ @@ -41,7 +37,10 @@ NEOMAGIC_LIBS = \ Xneomagic_LDADD = \ $(NEOMAGIC_LIBS) \ @KDRIVE_LIBS@ \ - @XSERVER_LIBS@ \ - $(TSLIB_FLAG) + @XSERVER_LIBS@ + -Xneomagic_DEPENDENCIES = $(NEOMAGIC_LIBS) @KDRIVE_LIBS@ +Xneomagic_DEPENDENCIES = \ + libneomagic.a \ + ${FBDEV_LIBS} \ + ${VESA_LIBS} diff --git a/hw/kdrive/nvidia/Makefile.am b/hw/kdrive/nvidia/Makefile.am index 48551a3a6..d7b26cfa1 100644 --- a/hw/kdrive/nvidia/Makefile.am +++ b/hw/kdrive/nvidia/Makefile.am @@ -30,7 +30,8 @@ NVIDIA_LIBS = \ Xnvidia_LDADD = \ $(NVIDIA_LIBS) \ @KDRIVE_LIBS@ \ - @XSERVER_LIBS@ \ - $(TSLIB_FLAG) + @XSERVER_LIBS@ -Xnvidia_DEPENDENCIES = $(NVIDIA_LIBS) @KDRIVE_LIBS@ +Xnvidia_DEPENDENCIES = \ + libnvidia.a \ + $(top_builddir)/hw/kdrive/vesa/libvesa.a diff --git a/hw/kdrive/pm2/Makefile.am b/hw/kdrive/pm2/Makefile.am index 1a712072a..24ef15042 100644 --- a/hw/kdrive/pm2/Makefile.am +++ b/hw/kdrive/pm2/Makefile.am @@ -5,10 +5,6 @@ INCLUDES = \ bin_PROGRAMS = Xpm2 -if TSLIB -TSLIB_FLAG = -lts -endif - noinst_LIBRARIES = libpm2.a libpm2_a_SOURCES = \ @@ -28,7 +24,9 @@ PM2_LIBS = \ Xpm2_LDADD = \ $(PM2_LIBS) \ @KDRIVE_LIBS@ \ - @XSERVER_LIBS@ \ - $(TSLIB_FLAG) + @XSERVER_LIBS@ + -Xpm2_DEPENDENCIES = $(PM2_LIBS) @KDRIVE_LIBS@ +Xpm2_DEPENDENCIES = \ + libpm2.a \ + $(top_builddir)/hw/kdrive/vesa/libvesa.a diff --git a/hw/kdrive/r128/Makefile.am b/hw/kdrive/r128/Makefile.am index b33e138e1..da42af95f 100644 --- a/hw/kdrive/r128/Makefile.am +++ b/hw/kdrive/r128/Makefile.am @@ -5,10 +5,6 @@ INCLUDES = \ bin_PROGRAMS = Xr128 -if TSLIB -TSLIB_FLAG = -lts -endif - noinst_LIBRARIES = libr128.a libr128_a_SOURCES = \ @@ -27,7 +23,9 @@ R128_LIBS = \ Xr128_LDADD = \ $(R128_LIBS) \ @KDRIVE_LIBS@ \ - @XSERVER_LIBS@ \ - $(TSLIB_FLAG) + @XSERVER_LIBS@ + -Xr128_DEPENDENCIES = $(R128_LIBS) @KDRIVE_LIBS@ +Xr128_DEPENDENCIES = \ + libr128.a \ + $(top_builddir)/hw/kdrive/vesa/libvesa.a diff --git a/hw/kdrive/sdl/Makefile.am b/hw/kdrive/sdl/Makefile.am index ba6ed4d4a..cc3873ca8 100644 --- a/hw/kdrive/sdl/Makefile.am +++ b/hw/kdrive/sdl/Makefile.am @@ -16,5 +16,3 @@ Xsdl_LDADD = @KDRIVE_PURE_LIBS@ \ @XSERVER_LIBS@ \ $(TSLIB_FLAG) \ @XSDL_LIBS@ - -Xsdl_DEPENDENCIES = @KDRIVE_LIBS@ diff --git a/hw/kdrive/sis300/Makefile.am b/hw/kdrive/sis300/Makefile.am index efd1e9ab4..6a6e0bf80 100644 --- a/hw/kdrive/sis300/Makefile.am +++ b/hw/kdrive/sis300/Makefile.am @@ -43,4 +43,4 @@ Xsis_LDADD = \ @KDRIVE_LIBS@ \ $(TSLIB_FLAG) -Xsis_DEPENDENCIES = $(SIS_LIBS) @KDRIVE_LIBS@ +Xsis_DEPENDENCIES = $(SIS_LIBS) diff --git a/hw/kdrive/smi/Makefile.am b/hw/kdrive/smi/Makefile.am index a214e762e..86a9ea947 100644 --- a/hw/kdrive/smi/Makefile.am +++ b/hw/kdrive/smi/Makefile.am @@ -6,10 +6,6 @@ INCLUDES = \ bin_PROGRAMS = Xsmi -if TSLIB -TSLIB_FLAG = -lts -endif - noinst_LIBRARIES = libsmi.a # smivideo.c # not ready yet @@ -32,7 +28,10 @@ SMI_LIBS = \ Xsmi_LDADD = \ $(SMI_LIBS) \ @KDRIVE_LIBS@ \ - @XSERVER_LIBS@ \ - $(TSLIB_FLAG) + @XSERVER_LIBS@ + -Xsmi_DEPENDENCIES = $(SMI_LIBS) @KDRIVE_LIBS@ +Xsmi_DEPENDENCIES = \ + libsmi.a \ + $(top_builddir)/hw/kdrive/fbdev/libfbdev.a \ + $(top_builddir)/hw/kdrive/vesa/libvesa.a diff --git a/hw/kdrive/vesa/Makefile.am b/hw/kdrive/vesa/Makefile.am index 01bc0a3e1..70ba55fa7 100644 --- a/hw/kdrive/vesa/Makefile.am +++ b/hw/kdrive/vesa/Makefile.am @@ -6,11 +6,6 @@ noinst_LIBRARIES = libvesa.a bin_PROGRAMS = Xvesa -if TSLIB -TSLIB_FLAG = -lts -endif - - libvesa_a_SOURCES = \ vesa.c \ vesa.h \ @@ -28,9 +23,7 @@ Xvesa_LDADD = \ libvesa.a \ @KDRIVE_LIBS@ \ @KDRIVE_LIBS@ \ - $(TSLIB_FLAG) \ @XSERVER_LIBS@ Xvesa_DEPENDENCIES = \ - libvesa.a \ - @KDRIVE_LIBS@ + libvesa.a diff --git a/hw/kdrive/via/Makefile.am b/hw/kdrive/via/Makefile.am index 4d52df9b1..7dcfd7c5b 100644 --- a/hw/kdrive/via/Makefile.am +++ b/hw/kdrive/via/Makefile.am @@ -31,4 +31,4 @@ Xvia_LDADD = \ @XSERVER_LIBS@ \ $(TSLIB_FLAG) -Xvia_DEPENDENCIES = $(VIA_LIBS) @KDRIVE_LIBS@ +Xvia_DEPENDENCIES = $(VIA_LIBS) diff --git a/hw/vfb/InitOutput.c b/hw/vfb/InitOutput.c index b8253f607..a2d866118 100644 --- a/hw/vfb/InitOutput.c +++ b/hw/vfb/InitOutput.c @@ -364,6 +364,9 @@ ddxProcessArgument(int argc, char *argv[], int i) if (strcmp (argv[i], "-render") == 0) /* -render */ { Render = FALSE; +#ifdef COMPOSITE + noCompositeExtension = TRUE; +#endif return 1; } diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c index 4d933aa9d..87b8a0b72 100644 --- a/hw/xfree86/common/xf86Config.c +++ b/hw/xfree86/common/xf86Config.c @@ -761,7 +761,8 @@ typedef enum { FLAG_RENDER_COLORMAP_MODE, FLAG_HANDLE_SPECIAL_KEYS, FLAG_RANDR, - FLAG_AIGLX + FLAG_AIGLX, + FLAG_IGNORE_ABI } FlagValues; static OptionInfoRec FlagOptions[] = { @@ -833,6 +834,8 @@ static OptionInfoRec FlagOptions[] = { {0}, FALSE }, { FLAG_AIGLX, "AIGLX", OPTV_BOOLEAN, {0}, FALSE }, + { FLAG_IGNORE_ABI, "IgnoreABI", OPTV_BOOLEAN, + {0}, FALSE }, { -1, NULL, OPTV_NONE, {0}, FALSE }, }; @@ -891,6 +894,10 @@ configServerFlags(XF86ConfFlagsPtr flagsconf, XF86OptionPtr layoutopts) &(xf86Info.grabInfo.allowDeactivate)); xf86GetOptValBool(FlagOptions, FLAG_ALLOW_CLOSEDOWN_GRABS, &(xf86Info.grabInfo.allowClosedown)); + xf86GetOptValBool(FlagOptions, FLAG_IGNORE_ABI, &xf86Info.ignoreABI); + if (&xf86Info.ignoreABI) { + xf86Msg(X_CONFIG, "Ignoring ABI Version\n"); + } /* * Set things up based on the config file information. Some of these diff --git a/hw/xfree86/common/xf86Cursor.c b/hw/xfree86/common/xf86Cursor.c index 14e0fcd91..61f0ce55e 100644 --- a/hw/xfree86/common/xf86Cursor.c +++ b/hw/xfree86/common/xf86Cursor.c @@ -576,24 +576,40 @@ xf86InitOrigins(void) /* force edge lists */ if(screen->left) { ref = screen->left->screennum; + if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) { + ErrorF("Referenced uninitialized screen in Layout!\n"); + break; + } pLayout->left = AddEdge(pLayout->left, 0, xf86Screens[i]->pScreen->height, xf86Screens[ref]->pScreen->width, 0, ref); } if(screen->right) { ref = screen->right->screennum; + if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) { + ErrorF("Referenced uninitialized screen in Layout!\n"); + break; + } pScreen = xf86Screens[i]->pScreen; pLayout->right = AddEdge(pLayout->right, 0, pScreen->height, -pScreen->width, 0, ref); } if(screen->top) { ref = screen->top->screennum; + if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) { + ErrorF("Referenced uninitialized screen in Layout!\n"); + break; + } pLayout->up = AddEdge(pLayout->up, 0, xf86Screens[i]->pScreen->width, 0, xf86Screens[ref]->pScreen->height, ref); } if(screen->bottom) { ref = screen->bottom->screennum; + if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) { + ErrorF("Referenced uninitialized screen in Layout!\n"); + break; + } pScreen = xf86Screens[i]->pScreen; pLayout->down = AddEdge(pLayout->down, 0, pScreen->width, 0, -pScreen->height, ref); @@ -609,6 +625,10 @@ xf86InitOrigins(void) break; case PosRelative: ref = screen->refscreen->screennum; + if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) { + ErrorF("Referenced uninitialized screen in Layout!\n"); + break; + } if(screensLeft & (1 << ref)) break; dixScreenOrigins[i].x = dixScreenOrigins[ref].x + screen->x; dixScreenOrigins[i].y = dixScreenOrigins[ref].y + screen->y; @@ -616,6 +636,10 @@ xf86InitOrigins(void) break; case PosRightOf: ref = screen->refscreen->screennum; + if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) { + ErrorF("Referenced uninitialized screen in Layout!\n"); + break; + } if(screensLeft & (1 << ref)) break; pScreen = xf86Screens[ref]->pScreen; dixScreenOrigins[i].x = @@ -625,6 +649,10 @@ xf86InitOrigins(void) break; case PosLeftOf: ref = screen->refscreen->screennum; + if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) { + ErrorF("Referenced uninitialized screen in Layout!\n"); + break; + } if(screensLeft & (1 << ref)) break; pScreen = xf86Screens[i]->pScreen; dixScreenOrigins[i].x = @@ -634,6 +662,10 @@ xf86InitOrigins(void) break; case PosBelow: ref = screen->refscreen->screennum; + if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) { + ErrorF("Referenced uninitialized screen in Layout!\n"); + break; + } if(screensLeft & (1 << ref)) break; pScreen = xf86Screens[ref]->pScreen; dixScreenOrigins[i].x = dixScreenOrigins[ref].x; @@ -643,6 +675,10 @@ xf86InitOrigins(void) break; case PosAbove: ref = screen->refscreen->screennum; + if (! xf86Screens[ref] || ! xf86Screens[ref]->pScreen) { + ErrorF("Referenced uninitialized screen in Layout!\n"); + break; + } if(screensLeft & (1 << ref)) break; pScreen = xf86Screens[i]->pScreen; dixScreenOrigins[i].x = dixScreenOrigins[ref].x; diff --git a/hw/xfree86/common/xf86DoScanPci.c b/hw/xfree86/common/xf86DoScanPci.c index 746ff70e7..0c6668a49 100644 --- a/hw/xfree86/common/xf86DoScanPci.c +++ b/hw/xfree86/common/xf86DoScanPci.c @@ -100,10 +100,6 @@ void DoScanPci(int argc, char **argv, int i) LoaderErrorMsg(NULL, "scanpci", errmaj, errmin); exit(1); } - if (LoaderCheckUnresolved(LD_RESOLV_IFDONE)) { - /* For now, just a warning */ - xf86Msg(X_WARNING, "Some symbols could not be resolved!\n"); - } PciSetup = (ScanPciSetupProcPtr)LoaderSymbol("ScanPciSetupPciIds"); DisplayPCICardInfo = (ScanPciDisplayCardInfoProcPtr)LoaderSymbol("ScanPciDisplayPCICardInfo"); diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c index d045c0676..8b4bf14c3 100644 --- a/hw/xfree86/common/xf86Init.c +++ b/hw/xfree86/common/xf86Init.c @@ -135,7 +135,8 @@ static int numFormats = 6; #endif static Bool formatsDone = FALSE; -InputDriverRec XF86KEYBOARD = { +#ifdef USE_DEPRECATED_KEYBOARD_DRIVER +static InputDriverRec XF86KEYBOARD = { 1, "keyboard", NULL, @@ -144,6 +145,7 @@ InputDriverRec XF86KEYBOARD = { NULL, 0 }; +#endif static Bool xf86CreateRootWindow(WindowPtr pWin) @@ -331,6 +333,10 @@ InitOutput(ScreenInfo *pScreenInfo, int argc, char **argv) /* Tell the loader the default module search path */ LoaderSetPath(xf86ModulePath); + if (xf86Info.ignoreABI) { + LoaderSetOptions(LDR_OPT_ABI_MISMATCH_NONFATAL); + } + #ifdef TESTING { char **list, **l; @@ -967,11 +973,6 @@ InitOutput(ScreenInfo *pScreenInfo, int argc, char **argv) #endif } - if ((serverGeneration == 1) && LoaderCheckUnresolved(LD_RESOLV_IFDONE)) { - /* For now, just a warning */ - xf86Msg(X_WARNING, "Some symbols could not be resolved!\n"); - } - xf86PostScreenInit(); xf86InitOrigins(); diff --git a/hw/xfree86/common/xf86Privstr.h b/hw/xfree86/common/xf86Privstr.h index a01b07fd7..67d4304c9 100644 --- a/hw/xfree86/common/xf86Privstr.h +++ b/hw/xfree86/common/xf86Privstr.h @@ -166,6 +166,7 @@ typedef struct { MessageType randRFrom; Bool aiglx; MessageType aiglxFrom; + Bool ignoreABI; struct { Bool disabled; /* enable/disable deactivating * grabs or closing the diff --git a/hw/xfree86/doc/man/xorg.conf.man.pre b/hw/xfree86/doc/man/xorg.conf.man.pre index 3340af0b5..e94804c3b 100644 --- a/hw/xfree86/doc/man/xorg.conf.man.pre +++ b/hw/xfree86/doc/man/xorg.conf.man.pre @@ -605,6 +605,10 @@ the builtin handler will be used. .TP 7 .BI "Option \*qAIGLX\*q \*q" boolean \*q enable or disable AIGLX. AIGLX is enabled by default. +.TP 7 +.BI "Option \*qIgnoreABI\*q \*q" boolean \*q +Allow modules built for a different, potentially incompatible version of +the X server to load. Disabled by default. .SH MODULE SECTION The .B Module diff --git a/hw/xnest/Args.c b/hw/xnest/Args.c index 0aa0ca478..5d0a0c02d 100644 --- a/hw/xnest/Args.c +++ b/hw/xnest/Args.c @@ -58,6 +58,13 @@ void ddxInitGlobals(void) int ddxProcessArgument (int argc, char *argv[], int i) { + +#ifdef COMPOSITE + /* XXX terrible hack */ + extern Bool noCompositeExtension; + noCompositeExtension = TRUE; +#endif + if (!strcmp(argv[i], "-display")) { if (++i < argc) { xnestDisplayName = argv[i]; diff --git a/hw/xwin/winmultiwindowwndproc.c b/hw/xwin/winmultiwindowwndproc.c index e35974468..0df896dd3 100644 --- a/hw/xwin/winmultiwindowwndproc.c +++ b/hw/xwin/winmultiwindowwndproc.c @@ -304,7 +304,6 @@ winTopLevelWindowProc (HWND hwnd, UINT message, winScreenInfo *s_pScreenInfo = NULL; HWND hwndScreen = NULL; DrawablePtr pDraw = NULL; - int iX, iY, iWidth, iHeight, iBorder; winWMMessageRec wmMsg; Bool fWMMsgInitialized = FALSE; static Bool s_fTracking = FALSE; @@ -442,20 +441,19 @@ winTopLevelWindowProc (HWND hwnd, UINT message, /* BeginPaint gives us an hdc that clips to the invalidated region */ hdcUpdate = BeginPaint (hwnd, &ps); - - /* Get the position and dimensions of the window */ - iBorder = wBorderWidth (pWin); - iX = pWin->drawable.x; - iY = pWin->drawable.y; - iWidth = pWin->drawable.width; - iHeight = pWin->drawable.height; + /* Avoid the BitBlt's if the PAINTSTRUCT is bogus */ + if (ps.rcPaint.right==0 && ps.rcPaint.bottom==0 && ps.rcPaint.left==0 && ps.rcPaint.top==0) + { + EndPaint (hwndScreen, &ps); + return 0; + } /* Try to copy from the shadow buffer */ if (!BitBlt (hdcUpdate, - 0, 0, - iWidth, iHeight, + ps.rcPaint.left, ps.rcPaint.top, + ps.rcPaint.right - ps.rcPaint.left, ps.rcPaint.bottom - ps.rcPaint.top, s_pScreenPriv->hdcShadow, - iX, iY, + ps.rcPaint.left + pWin->drawable.x, ps.rcPaint.top + pWin->drawable.y, SRCCOPY)) { LPVOID lpMsgBuf; diff --git a/hw/xwin/winshadgdi.c b/hw/xwin/winshadgdi.c index ba9819298..04cc2f716 100644 --- a/hw/xwin/winshadgdi.c +++ b/hw/xwin/winshadgdi.c @@ -540,8 +540,9 @@ winShadowUpdateGDI (ScreenPtr pScreen, * handle large regions by creating a clipping region and * doing a single blit constrained to that clipping region. */ - if (pScreenInfo->dwClipUpdatesNBoxes == 0 - || dwBox < pScreenInfo->dwClipUpdatesNBoxes) + if (!pScreenInfo->fMultiWindow && + (pScreenInfo->dwClipUpdatesNBoxes == 0 || + dwBox < pScreenInfo->dwClipUpdatesNBoxes)) { /* Loop through all boxes in the damaged region */ while (dwBox--) @@ -566,7 +567,7 @@ winShadowUpdateGDI (ScreenPtr pScreen, ++pBox; } } - else + else if (!pScreenInfo->fMultiWindow) { /* Compute a GDI region from the damaged region */ hrgnCombined = CreateRectRgn (pBox->x1, pBox->y1, pBox->x2, pBox->y2); |