diff options
author | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2011-12-18 16:09:01 +0000 |
---|---|---|
committer | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2011-12-18 16:09:01 +0000 |
commit | e0d1211591b1caeff41a5ba6567a052c2c634912 (patch) | |
tree | 89ddd2fb66727360ab2df03e397054d15501053e /xserver | |
parent | 47d9c1404905a4c2796c7fbd12a329751e2e3e97 (diff) |
Bugfix Update to xserver 1.11.3
Diffstat (limited to 'xserver')
40 files changed, 1129 insertions, 282 deletions
diff --git a/xserver/ChangeLog b/xserver/ChangeLog index b225fd0b6..ab079f2a3 100644 --- a/xserver/ChangeLog +++ b/xserver/ChangeLog @@ -1,3 +1,474 @@ +commit 41524dd61020f2a446ec54643fa17aa791338cac +Author: Jeremy Huddleston <jeremyhu@apple.com> +Date: Fri Dec 16 17:47:46 2011 -0800 + + configure.ac: 1.11.3 + + Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com> + +commit ee66474eb2009118a41539c6773e514a09d27e4d +Author: Gaetan Nadon <memsize@videotron.ca> +Date: Fri Dec 9 07:45:02 2011 -0500 + + dmx: fix distcheck failure, missing compsize.h in Makefile.am + + which was added in commit: + dmx: Build fix for -Werror=implicit-function-declaration + + Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> + Signed-off-by: Gaetan Nadon <memsize@videotron.ca> + Signed-off-by: Keith Packard <keithp@keithp.com> + (cherry picked from commit 2c1d0a539c0fb1860ac89a00d1fb609f1959e1b6) + +commit 0ca8869e4537412f25bfd5610aba5e604952608c +Author: Jeremy Huddleston <jeremyhu@apple.com> +Date: Fri Dec 9 12:58:30 2011 -0800 + + configure.ac: 1.11.2.902 (1.11.3 RC2) + + Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com> + +commit e76c397eb90291b048e0b2102111008e3d2e469e +Author: Dave Airlie <airlied@redhat.com> +Date: Mon Nov 28 16:37:59 2011 +0000 + + kdrive: drop screen crossing code. + + The only kdrive server we probably care about anymore is Xephyr, + and this screen enable/disable code totally breaks it in multi-screen mode. + + When you are in one screen the other stops updating. + + Fixes https://bugzilla.redhat.com/show_bug.cgi?id=757457 + + Signed-off-by: Dave Airlie <airlied@redhat.com> + Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> + (cherry picked from commit 98c4a888a4428789386c7c47cecc81933b5999ba) + +commit db418ff7501d960c8de813a37b8bb37b1ba22175 +Author: Dave Airlie <airlied@redhat.com> +Date: Thu Oct 20 10:48:26 2011 +0100 + + hal: free tmp_val in one missing case + + Pointed out by coverity scan. + + Signed-off-by: Dave Airlie <airlied@redhat.com> + Reviewed-by: Daniel Stone <daniel@fooishbar.org> + (cherry picked from commit 8d3731a811e33e263920dd7c8ec63d02968cb56e) + +commit 6b11b18ab683e1f38e5b27066b35947b96956e5f +Author: Dave Airlie <airlied@redhat.com> +Date: Thu Oct 20 11:00:43 2011 +0100 + + xv: test correct number of requests. (v2) + + Pointed out by coverity. + + v2: fix swapped as well, as pointed out by Alan + + Signed-off-by: Dave Airlie <airlied@redhat.com> + Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> + (cherry picked from commit 41229392b790f30a0f0ef1f4ed95647c5bca4001) + +commit df16b789aaf5fe7025e5661117477a5f6f9129ee +Author: Dave Airlie <airlied@redhat.com> +Date: Wed Oct 19 16:57:13 2011 +0100 + + xaa: avoid possible freed pointer reuse in epilogue + + If the pGCPriv->flags == 2, then we try to assign the freed pGCPriv->XAAOps + avoid this by clearing the flags in to be destroyed pGCPriv. + + Reported by coverity. + + Signed-off-by: Dave Airlie <airlied@redhat.com> + Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> + (cherry picked from commit 1049139499d9132a20cd6d4d156fe9da9cddb6c2) + +commit befa8a3b836e8b5781491aff4e659ae856beb494 +Author: Dave Airlie <airlied@redhat.com> +Date: Wed Oct 19 16:22:31 2011 +0100 + + Xi: avoid overrun of callback array. + + This code had an off-by-one and would allow writing one past the end of + the callbacks array. + + Pointed out by coverity. + + Signed-off-by: Dave Airlie <airlied@redhat.com> + Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> + (cherry picked from commit 682c09a2cedd234b005334cc01247d859dd7f26a) + +commit b22783f483d440a005ff76d5c7894e2cf2a95dcb +Author: Dave Airlie <airlied@redhat.com> +Date: Wed Oct 19 16:21:26 2011 +0100 + + xext: don't free uninitialised pointer when malloc fails. (v2) + + Initialise the pAttr->values to values so if the values allocation + fails it just ends up as free(NULL). + + Pointed out by coverity. + + v2: use Alan's suggestion. + + Signed-off-by: Dave Airlie <airlied@redhat.com> + Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> + Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> + (cherry picked from commit b62dc4fcbcffd10de16650bee284702c8608bb60) + +commit 083599c5597276289af9adaf8a8571cbe743c3fd +Author: Adam Jackson <ajax@redhat.com> +Date: Thu Apr 28 13:34:28 2011 +1000 + + fbdevhw: iterate over all modes that match a mode. (v3) + + So on RHEL5 anaconda sets an xorg.conf with a fixed 800x600 mode in it, + we run radeonfb and fbdev since ati won't work in userspace due to domain + issues in the older codebase. + + On certain pseries blades the built-in KVM can't accept an 800x600-43 mode, + it requires the 800x600-60 mode, so we have to have the kernel radeonfb + driver reject the 800x600-43 mode when it sees it. However then fbdev + doesn't try any of the other 800x600 modes in the modelist, and we end up + getting a default 640x480 mode we don't want. + + This patch changes the mode validation loop to continue on with the other modes + that match to find one that works. + + v2: move code around to avoid extra loop, after comment from Jamey. + v3: move loop setup back into loop as per Jeremy's review. + + Signed-off-by: Dave Airlie <airlied@redhat.com> + Reviewed-by: Jamey Sharp <jamey@minilop.net> + Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> + (cherry picked from commit 22605effd188436629a0dbc688666549473741e4) + +commit 05a890df0ade7c4958a2a13ed0c6471e4658a098 +Author: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Thu Dec 1 23:45:42 2011 -0800 + + LoaderOpen returns either a valid pointer or NULL, so don't check for < 0 + + Fixes Sun cc warning that was recently elevated to error by the + stricter default CFLAGS changes to xorg-macros: + + "loadmod.c", line 914: improper pointer/integer combination: op "<" + + Should have been changed when commit ab7f057ce9df4e905b12 changed the + LoaderOpen return type from int to void *. + + Changes log message when file is found but dlopen() fails from: + (EE) LoadModule: Module dbe does not have a dbeModuleData data object. + (EE) Failed to load module "dbe" (invalid module, 0) + to: + (EE) Failed to load module "dbe" (loader failed, 7) + + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + Reviewed-by: Adam Jackson <ajax@redhat.com> + (cherry picked from commit e4dcf580f007d6adcf5b0c639865d7aaab1a319d) + +commit f4944108421d6ae4c728290baa43291f55ebaa67 +Author: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Wed Nov 23 00:30:02 2011 -0800 + + Limit the number of screens Xvfb will attempt to allocate memory for + + Commit f9e3a2955d2ca7 removing the MAXSCREEN limit left the screen + number too unlimited, and allowed any positive int for a screen number: + + Xvfb :1 -screen 2147483647 1024x1024x8 + + Fatal server error: + Not enough memory for screen 2147483647 + + Found by Parfait 0.3.7: + Error: Integer overflow (CWE 190) + Integer parameter of memory allocation function realloc() may overflow due to multiplication with constant value 1112 + at line 293 of hw/vfb/InitOutput.c in function 'ddxProcessArgument'. + + Since the X11 connection setup only has a CARD8 for number of SCREENS, + limit to 255 screens, which is also low enough to avoid overflow on the + sizeof(*vfbScreens) * (screenNum + 1) calculation for realloc. + + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + Reviewed-by: Jamey Sharp <jamey@minilop.net> + (cherry picked from commit feebf6746374aa04b12e9e3e51313a3a82c03530) + +commit bed7d7f31ed48cbf0931ca77fdac135e514a2a44 +Author: Rui Matos <tiagomatos@gmail.com> +Date: Tue Nov 1 21:32:36 2011 +0000 + + randr: Make the RRConstrainCursorHarder logic the same as miPointerSetPosition + + The constraining logic in RRConstrainCursorHarder allows the cursor to reach + crtc positions of x = width and y = height while the constraining code in + miPointerSetPosition only allows it to reach x = width - 1 and y = height - 1 + for the analogous screen case. + + This patch makes the former's logic equivalent to the latter's which allows + applications to benefit from Fitts's law. E.g. a maximized application + adjacent to a crtc border wouldn't get pointer events if the user moved the + pointer all the way until it's contained. + + Signed-off-by: Rui Matos <tiagomatos@gmail.com> + Reviewed-by: Daniel Stone <daniel@fooishbar.org> + Signed-off-by: Keith Packard <keithp@keithp.com> + (cherry picked from commit 9cc44b955b27de33348d6a20bebc9704930ee18e) + +commit 4689c84a07f87d35492feeae2bc59642c31b6eb3 +Author: Jeremy Huddleston <jeremyhu@apple.com> +Date: Mon Nov 28 00:07:29 2011 -0800 + + configure.ac: 1.11.2.901 (1.11.3 RC1) + + Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com> + +commit e2661ddbc5d1b2edb1ab514a761f8c0b66e69736 +Author: Derek Buitenhuis <derek.buitenhuis@gmail.com> +Date: Sun Nov 6 12:20:51 2011 -0500 + + Fix vesa's VBE PanelID interpretation + + xserver's VESA driver's VBE (Vesa BIOS Extensions) code + includes a PanelID probe, which can get a monitor's native + resolution. From this, using CVT formulas, it derives + horizontal sync rate and a vertical refresh rate ranges. + + It however, only derives the upper bounds of the ranges, and + the lower bounds cannot de derived. By default, they are set + to hardcoded constants which represent the lowest supported + resolution: 640x480. The constants in vbe.c however, were + not actually derived from forulas, but carried over from + other code from the bad old days, and are not relevant + to flat panel displays. This caused, for example, EEEPC701's + panel, with a native resolution of 800x480, to end up with + a upper bound of the horizontal sync rate that was lower + than the hardcoded lower bound, which of course broke things. + + These numbers have been rederived using both my own CVT tool + based on xf86CVTMode(), and using the provided 'cvt' tool + that comes with xserver. + + Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com> + Reviewed-by: Adam Jackson <ajax@redhat.com> + Signed-off-by: Keith Packard <keithp@keithp.com> + (cherry picked from commit f0d50cc6651dce3a8a3cd3fb84210aa92b139763) + +commit 2e3406fc6737539210e29ac0b2821848e6d1f069 +Author: Jeremy Huddleston <jeremyhu@apple.com> +Date: Mon Nov 7 22:14:30 2011 +0000 + + dmx: Build fix for -Werror=implicit-function-declaration + + Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com> + Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + (cherry picked from commit f405dfffe7d5db81d398615a80acbeba7e014ada) + +commit b440fc9c1bb10f8c227120e6d9e58101108d71bb +Author: dtakahashi42 <dtakahashi42@gmail.com> +Date: Fri Nov 18 11:30:22 2011 -0800 + + rootless: Fix a server crash when choosing a color with the gimp color wheel + + https://trac.macports.org/ticket/30927 + + Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com> + Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> + (cherry picked from commit 328074890eeb111950e984c6f618311983600b20) + +commit 40c1287f36517f0afd62306e306f6a68120d9a59 +Author: Ross Burton <ross@linux.intel.com> +Date: Wed Sep 28 11:46:02 2011 +0100 + + edid: Add quirk for Acer Aspire One 110 + + At least one revision of the AAO reports a 190x110mm maximum size but a + 451x113mm mode. + + X.Org Bug 41141 <https://bugs.freedesktop.org/show_bug.cgi?id=41141> + + Signed-off-by: Ross Burton <ross@linux.intel.com> + Reviewed-by: Daniel Stone <daniel@fooishbar.org> + Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> + (cherry picked from commit 58864146fbdf1820d04825838691e84784ef91bc) + +commit 7972e2dade58158bb98f5b7dc5f873b9fb3446de +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Thu Aug 25 16:04:04 2011 +0100 + + dri2: Register the DRI2DrawableType after server regeneration + + The Resource database is reset upon regeneration and so the dri2 module + needs to re-register its RESTYPE for the drawable or else it will + clobber the next unsuspecting user of the database. Fortunately, DRI2 is + loaded late in the initialisation sequence and was last up until + xf86-video-intel started using the Resource database to track + outstanding swaps... + + Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> + Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> + Tested-by: Paulo Zanoni <paulo.r.zanoni@intel.com> + (cherry picked from commit 34b0e4eee911f8b09a3682a7f1b4c8598ef48b8d) + +commit 73beaf9033d9a44e7a7c654f296624c7265eeb6d +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Mon Jan 24 11:17:03 2011 +0000 + + DRI2: Avoid a NULL pointer dereference + + Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41211 + + Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> + Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> + (cherry picked from commit bfa1a0dd190ed88020d60eba3bb04681c8e83a68) + +commit 6105fcaa3592cb6d0d5f22d9b850986d0bc4d241 +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Mon Jan 24 11:17:03 2011 +0000 + + VidMode: prevent crash with no modes + + Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=17431 + + Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> + Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> + (cherry picked from commit eeb21a133b982f71de739baf62e53c8a68f5d495) + +commit d113b2911573f3685dc644c6fdd1979aa880b99f +Author: Rami Ylimäki <rami.ylimaki@vincit.fi> +Date: Tue Oct 4 12:25:26 2011 +0300 + + record: Prevent out of bounds access when recording a reply. + + Any pad bytes in replies are written to the client from a zeroed + array. However, record extension tries to incorrectly access the pad + bytes from the end of reply data. + + Signed-off-by: Rami Ylimäki <rami.ylimaki@vincit.fi> + Reviewed-by: Erkki Seppälä <erkki.seppala@vincit.fi> + (cherry picked from commit c1bb8f43b9290c2b18a9f0ac59773ff8f1eb974f) + +commit 4dc5b6ea9f4932070c37b7c5393d468d00803712 +Author: Jeremy Huddleston <jeremyhu@apple.com> +Date: Tue Nov 1 14:59:15 2011 -0700 + + xfree86: Fix powerpc build with -Werror=int-to-pointer-cast -Werror=pointer-to-int-cast + + memType is a uint64_t on powerpc. Using memType only really makes + sense for *physical* addresses, which can be 64-bit for 32-bit + systems running on 64-bit hardware. + + However, unmapVidMem() only deals with *virtual* addresses, which + are guaranteed to fit into an uintptr_t. + + Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com> + Reviewed-by: Mark Kettenis <kettenis@openbsd.org> + (cherry picked from commit eb3377ffb8a7baa26c9831e56ed782d48b28fa71) + +commit a1925f08790083a5c00f9f4ba766cbb8749240f3 +Author: Peter Hutterer <peter.hutterer@who-t.net> +Date: Fri Apr 15 13:32:10 2011 +1000 + + include: export GetProximityEvents and QueueProximityEvents + + This is mainly needed for consistency with GetPointerEvents and friend. + No-one seems to actually need this function from outside the usual DDXs. + + Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> + Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> + (cherry picked from commit fc16917ad6f0d2722bfb5c5eeca955dd3bc4125a) + +commit a6a21f84bbdd4e3c6218f7b4c04a2d947a784f9f +Author: Peter Hutterer <peter.hutterer@who-t.net> +Date: Thu Nov 3 08:58:58 2011 +1000 + + dix: Don't let a driver without a ProximityClassRec post events + + Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> + Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> + (cherry picked from commit 11840595a1be9f2df7390bcc708cc176e60d3ef2) + +commit 2f2d871ccdfb256831ae487c5916054a3d29d126 +Author: Peter Hutterer <peter.hutterer@who-t.net> +Date: Thu Oct 27 11:03:39 2011 +1000 + + Xi: allow passive keygrabs on the XIAll(Master)Devices fake devices + + They don't have a KeyClassRec, but we must still allow passive grabs on + them. + + Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> + Tested-by: Bastien Nocera <hadess@hadess.net> + Reviewed-by: Daniel Stone <daniel@fooishbar.org> + (cherry picked from commit 22715e465b415b3351b83b8279a4f44157f63199) + +commit 34bb83b9df20ff63dbb147ed661f39efb8bae8e4 +Author: Peter Hutterer <peter.hutterer@who-t.net> +Date: Mon Oct 24 12:00:32 2011 +1000 + + dix: block signals when closing all devices + + When closing down all devices, we manually unset master for all attached + devices, but the device's sprite info still points to the master's sprite + info. This leaves us a window where the master is freed already but the + device isn't yet. A signal during that window causes dereference of the + already freed spriteInfo in mieqEnqueue's EnqueueScreen macro. + + Simply block signals when removing all devices. It's not like we're really + worrying about high-responsive input at this stage. + + https://bugzilla.redhat.com/show_bug.cgi?id=737031 + + Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> + Reviewed-by: Julien Cristau <jcristau@debian.org> + (cherry picked from commit d7c44a7c9760449bef263413ad3b20f19b1dc95a) + +commit 97f2ae60fc0cc755abd8b88df826fcb1a20464fe +Author: Christopher Yeleighton <giecrilj@stegny.2a.pl> +Date: Mon Oct 24 18:47:06 2011 -0700 + + Bug 38420: Xvfb crashes in miInitVisuals() when started with depth=2 + + https://bugs.freedesktop.org/show_bug.cgi?id=38420 + + Exit with fatal error message, not segfault. + + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> + Signed-off-by: Keith Packard <keithp@keithp.com> + (cherry picked from commit 7d50211ab57a35910d79fc3f67ae89aff91fa995) + +commit 89626304ea1ad316c5b7145a40f09377148cff21 +Author: Dave Airlie <airlied@redhat.com> +Date: Thu Oct 20 14:43:01 2011 +0100 + + xf86Crtc: handle no outputs with no modes harder. + + If you started an X server with no connected outputs, we pick a default + 1024x768 mode, however if you then ran an xvidmode using app against that + server it would segfault the server due to not finding any valid modes. + + This was due to the no output mode set code, only adding the modes to the + scrn->modes once, when something called randr 1.2 xf86SetScrnInfoModes would + get called and remove all the modes and we'd end up with 0. + + This change fixes xf86SetScrnInfoModes to always report a scrn mode of at + least 1024x768, and pushes the initial configuration to just call it instead + of setting up the mode itself. + + Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=746926 + + I've seen other bugs like this on other distros so it might also actually fix them. + + Signed-off-by: Dave Airlie <airlied@redhat.com> + Reviewed-by: Keith Packard <keithp@keithp.com> + Signed-off-by: Keith Packard <keithp@keithp.com> + (cherry picked from commit 17416e88dcfcc584fe5f87580d5d2b719b3521c3) + commit c68a84e73d1ebb2f75cdc4c3d8576a15b31ab3f7 Author: Jeremy Huddleston <jeremyhu@apple.com> Date: Fri Nov 4 10:24:08 2011 -0700 diff --git a/xserver/Xext/saver.c b/xserver/Xext/saver.c index 18886038a..0f9e87870 100644 --- a/xserver/Xext/saver.c +++ b/xserver/Xext/saver.c @@ -927,7 +927,7 @@ ScreenSaverSetAttributes (ClientPtr client) goto bail; } /* over allocate for override redirect */ - values = malloc((len + 1) * sizeof (unsigned long)); + pAttr->values = values = malloc((len + 1) * sizeof (unsigned long)); if (!values) { ret = BadAlloc; @@ -947,7 +947,6 @@ ScreenSaverSetAttributes (ClientPtr client) pAttr->pCursor = NullCursor; pAttr->pBackgroundPixmap = NullPixmap; pAttr->pBorderPixmap = NullPixmap; - pAttr->values = values; /* * go through the mask, checking the values, * looking up pixmaps and cursors and hold a reference diff --git a/xserver/Xext/xvdisp.c b/xserver/Xext/xvdisp.c index b96843159..84b10b494 100644 --- a/xserver/Xext/xvdisp.c +++ b/xserver/Xext/xvdisp.c @@ -1265,7 +1265,7 @@ ProcXvDispatch(ClientPtr client) UpdateCurrentTime(); - if (stuff->data > xvNumRequests) { + if (stuff->data >= xvNumRequests) { SendErrorToClient(client, XvReqCode, stuff->data, 0, BadRequest); return BadRequest; } @@ -1589,7 +1589,7 @@ SProcXvDispatch(ClientPtr client) UpdateCurrentTime(); - if (stuff->data > xvNumRequests) { + if (stuff->data >= xvNumRequests) { SendErrorToClient(client, XvReqCode, stuff->data, 0, BadRequest); return BadRequest; } diff --git a/xserver/Xi/extinit.c b/xserver/Xi/extinit.c index 0905e1877..0ce4e060b 100644 --- a/xserver/Xi/extinit.c +++ b/xserver/Xi/extinit.c @@ -409,7 +409,7 @@ static int ProcIDispatch(ClientPtr client) { REQUEST(xReq); - if (stuff->data > ARRAY_SIZE(ProcIVector) || !ProcIVector[stuff->data]) + if (stuff->data >= ARRAY_SIZE(ProcIVector) || !ProcIVector[stuff->data]) return BadRequest; return (*ProcIVector[stuff->data])(client); @@ -428,7 +428,7 @@ static int SProcIDispatch(ClientPtr client) { REQUEST(xReq); - if (stuff->data > ARRAY_SIZE(SProcIVector) || !SProcIVector[stuff->data]) + if (stuff->data >= ARRAY_SIZE(SProcIVector) || !SProcIVector[stuff->data]) return BadRequest; return (*SProcIVector[stuff->data])(client); diff --git a/xserver/config/hal.c b/xserver/config/hal.c index 297520aa6..a4141d552 100644 --- a/xserver/config/hal.c +++ b/xserver/config/hal.c @@ -355,6 +355,7 @@ device_added(LibHalContext *hal_ctx, const char *udi) if (!strcasecmp(tmp, ".options") && (!xkb_opts.options)) xkb_opts.options = strdup(tmp_val); } + free(tmp_val); } } } diff --git a/xserver/config/wscons.c b/xserver/config/wscons.c index 0dfc613ec..b89b9d1ea 100644 --- a/xserver/config/wscons.c +++ b/xserver/config/wscons.c @@ -29,6 +29,7 @@ #include <dev/wscons/wsksymdef.h> #include <sys/ioctl.h> +#include <ctype.h> #include <errno.h> #include <string.h> #include <unistd.h> @@ -121,7 +122,7 @@ wscons_add_keyboard(void) LogMessage(X_INFO, "config/wscons: checking input device %s\n", WSCONS_KBD_DEVICE); - add_option(&options, "name", WSCONS_KBD_DEVICE); + add_option(&options, "name", "Keyboard"); add_option(&options, "driver", "kbd"); config_info = Xprintf("wscons:%s", WSCONS_KBD_DEVICE); @@ -182,12 +183,13 @@ unwind: } static void -wscons_add_pointer(const char *path, const char *driver, int flags) +wscons_add_pointer(const char *path, const char *driver, int flags, int index) { InputAttributes attrs = {}; DeviceIntPtr dev = NULL; InputOption *options = NULL, *tmpo; char *config_info = NULL; + char *name = NULL; int rc; config_info = Xprintf("wscons:%s", path); @@ -197,11 +199,21 @@ wscons_add_pointer(const char *path, const char *driver, int flags) if (!options) return; + if (index >= 0) + name = Xprintf("%s%d", driver, index); + else + name = strdup("mouse"); + if (!name) { + free(options); + free(config_info); + return; + } + name[0] = toupper(name[0]); options->key = strdup("_source"); options->value = strdup("server/wscons"); if (!options->key || !options->value) return; - add_option(&options, "name", strdup(path)); + add_option(&options, "name", name); add_option(&options, "driver", strdup(driver)); add_option(&options, "device", strdup(path)); LogMessage(X_INFO, "config/wscons: checking input device %s\n", path); @@ -251,17 +263,17 @@ wscons_add_pointers(void) case WSMOUSE_TYPE_SYNAPTICS: case WSMOUSE_TYPE_ALPS: wscons_add_pointer(devname, "synaptics", - ATTR_TOUCHPAD); + ATTR_TOUCHPAD, i); break; case WSMOUSE_TYPE_TPANEL: - wscons_add_pointer(devname, "ws", ATTR_TOUCHSCREEN); + wscons_add_pointer(devname, "ws", ATTR_TOUCHSCREEN, i); break; default: break; } } /* Add a default entry catching all other mux elements as "mouse" */ - wscons_add_pointer(WSCONS_MOUSE_PREFIX, "mouse", ATTR_POINTER); + wscons_add_pointer(WSCONS_MOUSE_PREFIX, "ws", ATTR_POINTER, -1); } int diff --git a/xserver/configure b/xserver/configure index 07213f153..6eaada34b 100644 --- a/xserver/configure +++ b/xserver/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.62 for xorg-server 1.11.2. +# Generated by GNU Autoconf 2.62 for xorg-server 1.11.3. # # Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>. # @@ -676,8 +676,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='xorg-server' PACKAGE_TARNAME='xorg-server' -PACKAGE_VERSION='1.11.2' -PACKAGE_STRING='xorg-server 1.11.2' +PACKAGE_VERSION='1.11.3' +PACKAGE_STRING='xorg-server 1.11.3' PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg' ac_unique_file="Makefile.am" @@ -2016,7 +2016,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 xorg-server 1.11.2 to adapt to many kinds of systems. +\`configure' configures xorg-server 1.11.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -2086,7 +2086,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of xorg-server 1.11.2:";; + short | recursive ) echo "Configuration of xorg-server 1.11.3:";; esac cat <<\_ACEOF @@ -2200,7 +2200,7 @@ Optional Packages: --with-fop Use fop to regenerate documentation (default: auto) --with-xsltproc Use xsltproc for the transformation of XML documents (default: auto) - --with-pic try to use only PIC/non-PIC objects [default=use + --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot=DIR Search for dependent libraries within DIR @@ -2480,7 +2480,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -xorg-server configure 1.11.2 +xorg-server configure 1.11.3 generated by GNU Autoconf 2.62 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -2494,7 +2494,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 xorg-server $as_me 1.11.2, which was +It was created by xorg-server $as_me 1.11.3, which was generated by GNU Autoconf 2.62. Invocation command line was $ $0 $@ @@ -2860,7 +2860,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu -RELEASE_DATE="2011-11-04" +RELEASE_DATE="2011-12-16" am__api_version="1.9" ac_aux_dir= @@ -3145,7 +3145,7 @@ fi # Define the identity of the package. PACKAGE='xorg-server' - VERSION='1.11.2' + VERSION='1.11.3' cat >>confdefs.h <<_ACEOF @@ -7145,8 +7145,8 @@ esac -macro_version='2.4' -macro_revision='1.3293' +macro_version='2.4.2' +macro_revision='1.3337' @@ -7789,6 +7789,11 @@ else lt_cv_sys_max_cmd_len=196608 ;; + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not @@ -7828,7 +7833,7 @@ else # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. - while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do @@ -8258,7 +8263,7 @@ irix5* | irix6* | nonstopux*) lt_cv_deplibs_check_method=pass_all ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; @@ -8938,13 +8943,13 @@ old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in @@ -9091,6 +9096,7 @@ for ac_symprfx in "" "_"; do # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ @@ -9510,7 +9516,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; } CFLAGS="$SAVE_CFLAGS" fi ;; -sparc*-*solaris*) +*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 @@ -9521,7 +9527,20 @@ sparc*-*solaris*) case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in - yes*) LD="${LD-ld} -m elf64_sparc" ;; + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" @@ -10185,7 +10204,13 @@ else $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? - if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 @@ -10196,6 +10221,7 @@ else fi { $as_echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } + { $as_echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if test "${lt_cv_ld_exported_symbols_list+set}" = set; then @@ -10257,6 +10283,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ fi { $as_echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + { $as_echo "$as_me:$LINENO: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if test "${lt_cv_ld_force_load+set}" = set; then @@ -10278,7 +10305,9 @@ _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? - if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&5 @@ -10432,7 +10461,22 @@ fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then - withval=$with_pic; pic_mode="$withval" + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac else pic_mode=default fi @@ -10510,6 +10554,10 @@ LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + test -z "$LN_S" && LN_S="ln -s" @@ -10969,7 +11017,9 @@ lt_prog_compiler_static= case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' - lt_prog_compiler_pic='-Xcompiler -fPIC' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi ;; esac else @@ -11060,18 +11110,33 @@ lt_prog_compiler_static= ;; *) case `$CC -V 2>&1 | sed 5q` in - *Sun\ F* | *Sun*Fortran*) + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; esac ;; esac @@ -11433,7 +11498,6 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported @@ -11683,8 +11747,7 @@ _LT_EOF xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld='-rpath $libdir' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ @@ -12125,6 +12188,7 @@ fi # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' @@ -12170,6 +12234,7 @@ fi hardcode_shlibpath_var=unsupported if test "$lt_cv_ld_force_load" = "yes"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + else whole_archive_flag_spec='' fi @@ -12198,10 +12263,6 @@ fi hardcode_shlibpath_var=no ;; - freebsd1*) - ld_shlibs=no - ;; - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little @@ -12214,7 +12275,7 @@ fi ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) + freebsd2.*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes @@ -12253,7 +12314,6 @@ fi fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes @@ -12906,11 +12966,6 @@ esac - - - - - { $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } @@ -13000,7 +13055,7 @@ need_version=unknown case $host_os in aix3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH @@ -13009,7 +13064,7 @@ aix3*) ;; aix[4-9]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes @@ -13074,7 +13129,7 @@ beos*) ;; bsdi[45]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' @@ -13213,7 +13268,7 @@ darwin* | rhapsody*) ;; dgux*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' @@ -13221,10 +13276,6 @@ dgux*) shlibpath_var=LD_LIBRARY_PATH ;; -freebsd1*) - dynamic_linker=no - ;; - freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. @@ -13232,7 +13283,7 @@ freebsd* | dragonfly*) objformat=`/usr/bin/objformat` else case $host_os in - freebsd[123]*) objformat=aout ;; + freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi @@ -13250,7 +13301,7 @@ freebsd* | dragonfly*) esac shlibpath_var=LD_LIBRARY_PATH case $host_os in - freebsd2*) + freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) @@ -13270,17 +13321,18 @@ freebsd* | dragonfly*) ;; gnu*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; haiku*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" @@ -13341,7 +13393,7 @@ hpux9* | hpux10* | hpux11*) ;; interix[3-9]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' @@ -13357,7 +13409,7 @@ irix5* | irix6* | nonstopux*) nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; @@ -13394,9 +13446,9 @@ linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -13510,7 +13562,7 @@ netbsd*) ;; newsos6) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes @@ -13579,7 +13631,7 @@ rdos*) ;; solaris*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -13604,7 +13656,7 @@ sunos4*) ;; sysv4 | sysv4.3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -13628,7 +13680,7 @@ sysv4 | sysv4.3*) sysv4*MP*) if test -d /usr/nec ;then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH @@ -13659,7 +13711,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -13669,7 +13721,7 @@ tpf*) ;; uts4*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -14764,6 +14816,8 @@ CC="$lt_save_CC" + + ac_config_commands="$ac_config_commands libtool" @@ -34534,7 +34588,7 @@ exec 6>&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by xorg-server $as_me 1.11.2, which was +This file was extended by xorg-server $as_me 1.11.3, which was generated by GNU Autoconf 2.62. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -34587,7 +34641,7 @@ Report bugs to <bug-autoconf@gnu.org>." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -xorg-server config.status 1.11.2 +xorg-server config.status 1.11.3 configured by $0, generated by GNU Autoconf 2.62, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" @@ -34720,6 +34774,7 @@ pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' @@ -34800,7 +34855,6 @@ with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' @@ -34859,6 +34913,7 @@ DLLTOOL \ OBJDUMP \ SHELL \ ECHO \ +PATH_SEPARATOR \ SED \ GREP \ EGREP \ @@ -34907,7 +34962,6 @@ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ -hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ exclude_expsyms \ include_expsyms \ @@ -35891,8 +35945,8 @@ done # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -# Inc. +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. @@ -35955,6 +36009,9 @@ SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + # The host system. host_alias=$host_alias host=$host @@ -36131,7 +36188,7 @@ shlibpath_overrides_runpath=$shlibpath_overrides_runpath libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. +# The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. @@ -36247,13 +36304,9 @@ allow_undefined_flag=$lt_allow_undefined_flag no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. +# This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec -# If ld is used when linking, flag to hardcode \$libdir into a binary -# during linking. This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld - # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator diff --git a/xserver/configure.ac b/xserver/configure.ac index e91b29c32..3079f4999 100644 --- a/xserver/configure.ac +++ b/xserver/configure.ac @@ -26,8 +26,8 @@ dnl dnl Process this file with autoconf to create configure. AC_PREREQ(2.57) -AC_INIT([xorg-server], 1.11.2, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server) -RELEASE_DATE="2011-11-04" +AC_INIT([xorg-server], 1.11.3, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server) +RELEASE_DATE="2011-12-16" AC_CONFIG_SRCDIR([Makefile.am]) AM_INIT_AUTOMAKE([foreign dist-bzip2]) AM_MAINTAINER_MODE diff --git a/xserver/dix/devices.c b/xserver/dix/devices.c index 2d4ac8bce..3a9063bf6 100644 --- a/xserver/dix/devices.c +++ b/xserver/dix/devices.c @@ -982,6 +982,8 @@ CloseDownDevices(void) { DeviceIntPtr dev; + OsBlockSignals(); + /* Float all SDs before closing them. Note that at this point resources * (e.g. cursors) have been freed already, so we can't just call * AttachDevice(NULL, dev, NULL). Instead, we have to forcibly set master @@ -1004,6 +1006,8 @@ CloseDownDevices(void) inputInfo.keyboard = NULL; inputInfo.pointer = NULL; XkbDeleteRulesDflts(); + + OsReleaseSignals(); } /** diff --git a/xserver/dix/getevents.c b/xserver/dix/getevents.c index a12462a4a..058fa8ac7 100644 --- a/xserver/dix/getevents.c +++ b/xserver/dix/getevents.c @@ -1309,7 +1309,7 @@ GetProximityEvents(InternalEvent *events, DeviceIntPtr pDev, int type, const Val /* Sanity checks. */ if ((type != ProximityIn && type != ProximityOut) || !mask_in) return 0; - if (!pDev->valuator) + if (!pDev->valuator || !pDev->proximity) return 0; valuator_mask_copy(&mask, mask_in); diff --git a/xserver/hw/dmx/glxProxy/Makefile.am b/xserver/hw/dmx/glxProxy/Makefile.am index 851604883..4ee1036b3 100644 --- a/xserver/hw/dmx/glxProxy/Makefile.am +++ b/xserver/hw/dmx/glxProxy/Makefile.am @@ -1,10 +1,12 @@ noinst_LIBRARIES = libglxproxy.a libglxproxy_a_SOURCES = compsize.c \ + compsize.h \ g_disptab.c \ g_disptab.h \ global.c \ glxcmds.c \ + glxcmds.h \ glxcmdsswap.c \ glxcontext.h \ glxdrawable.h \ diff --git a/xserver/hw/dmx/glxProxy/Makefile.in b/xserver/hw/dmx/glxProxy/Makefile.in index 9a0a9dff0..dd030f085 100644 --- a/xserver/hw/dmx/glxProxy/Makefile.in +++ b/xserver/hw/dmx/glxProxy/Makefile.in @@ -623,10 +623,12 @@ sysconfigdir = @sysconfigdir@ target_alias = @target_alias@ noinst_LIBRARIES = libglxproxy.a libglxproxy_a_SOURCES = compsize.c \ + compsize.h \ g_disptab.c \ g_disptab.h \ global.c \ glxcmds.c \ + glxcmds.h \ glxcmdsswap.c \ glxcontext.h \ glxdrawable.h \ diff --git a/xserver/hw/dmx/glxProxy/compsize.c b/xserver/hw/dmx/glxProxy/compsize.c index 9a40d65b0..5a5d5d0f1 100644 --- a/xserver/hw/dmx/glxProxy/compsize.c +++ b/xserver/hw/dmx/glxProxy/compsize.c @@ -29,6 +29,7 @@ */ #include <GL/gl.h> +#include "compsize.h" GLint __glFogiv_size(GLenum pname) { diff --git a/xserver/hw/dmx/glxProxy/compsize.h b/xserver/hw/dmx/glxProxy/compsize.h new file mode 100644 index 000000000..856c6f5ad --- /dev/null +++ b/xserver/hw/dmx/glxProxy/compsize.h @@ -0,0 +1,51 @@ +/* + * Copyright 2011 Apple Inc. + * + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation on the rights to use, copy, modify, merge, + * publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial + * portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef __compsize_h__ +#define __compsize_h__ + +extern GLint __glColorTableParameterfv_size(GLenum pname); +extern GLint __glColorTableParameteriv_size(GLenum pname); +extern GLint __glConvolutionParameterfv_size(GLenum pname); +extern GLint __glConvolutionParameteriv_size(GLenum pname); +extern GLint __glFogfv_size(GLenum pname); +extern GLint __glFogiv_size(GLenum pname); +extern GLint __glLightModelfv_size(GLenum pname); +extern GLint __glLightModeliv_size(GLenum pname); +extern GLint __glLightfv_size(GLenum pname); +extern GLint __glLightiv_size(GLenum pname); +extern GLint __glMaterialfv_size(GLenum pname); +extern GLint __glMaterialiv_size(GLenum pname); +extern GLint __glTexEnvfv_size(GLenum e); +extern GLint __glTexEnviv_size(GLenum e); +extern GLint __glTexGendv_size(GLenum e); +extern GLint __glTexGenfv_size(GLenum e); +extern GLint __glTexGeniv_size(GLenum e); +extern GLint __glTexParameterfv_size(GLenum e); +extern GLint __glTexParameteriv_size(GLenum e); + +#endif /* !__compsize_h__ */ diff --git a/xserver/hw/dmx/glxProxy/g_renderswap.c b/xserver/hw/dmx/glxProxy/g_renderswap.c index e67569605..e434a71b6 100644 --- a/xserver/hw/dmx/glxProxy/g_renderswap.c +++ b/xserver/hw/dmx/glxProxy/g_renderswap.c @@ -32,6 +32,7 @@ #include "glxext.h" #include "g_disptab.h" #include "unpack.h" +#include "compsize.h" void __glXDispSwap_CallList(GLbyte *pc) { diff --git a/xserver/hw/dmx/glxProxy/glxcmds.c b/xserver/hw/dmx/glxProxy/glxcmds.c index f79264ea9..3f21f65d0 100644 --- a/xserver/hw/dmx/glxProxy/glxcmds.c +++ b/xserver/hw/dmx/glxProxy/glxcmds.c @@ -52,6 +52,8 @@ #include "glxvisuals.h" #include "glxswap.h" +#include "glxcmds.h" + #ifdef PANORAMIX #include "panoramiXsrv.h" #endif diff --git a/xserver/hw/dmx/glxProxy/glxcmds.h b/xserver/hw/dmx/glxProxy/glxcmds.h new file mode 100644 index 000000000..ae866be29 --- /dev/null +++ b/xserver/hw/dmx/glxProxy/glxcmds.h @@ -0,0 +1,37 @@ +/* + * Copyright 2011 Apple Inc. + * + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation on the rights to use, copy, modify, merge, + * publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial + * portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef __GLX_cmds_h__ +#define __GLX_cmds_h__ + +extern int __glXBindSwapBarrierSGIX(__GLXclientState *cl, GLbyte *pc); +extern int __glXCreateContextWithConfigSGIX(__GLXclientState *cl, GLbyte *pc); +extern int __glXJoinSwapGroupSGIX(__GLXclientState *cl, GLbyte *pc); +extern int __glXMakeCurrentReadSGI(__GLXclientState *cl, GLbyte *pc); +extern int __glXQueryMaxSwapBarriersSGIX(__GLXclientState *cl, GLbyte *pc); + +#endif /* !__GLX_cmds_h__ */ diff --git a/xserver/hw/dmx/glxProxy/glxcmdsswap.c b/xserver/hw/dmx/glxProxy/glxcmdsswap.c index 22940593b..f28a79df6 100644 --- a/xserver/hw/dmx/glxProxy/glxcmdsswap.c +++ b/xserver/hw/dmx/glxProxy/glxcmdsswap.c @@ -35,11 +35,14 @@ #include <pixmapstr.h> #include <windowstr.h> #include "unpack.h" +#include "glxcmds.h" #include "glxext.h" #include "glxvendor.h" extern int glxIsExtensionSupported( char *ext ); +int __glXSwapGetFBConfigsSGIX(__GLXclientState *cl, GLbyte *pc); + /************************************************************************/ /* diff --git a/xserver/hw/kdrive/src/kinput.c b/xserver/hw/kdrive/src/kinput.c index c14dd8241..500a3d85b 100644 --- a/xserver/hw/kdrive/src/kinput.c +++ b/xserver/hw/kdrive/src/kinput.c @@ -2135,12 +2135,6 @@ KdCursorOffScreen(ScreenPtr *ppScreen, int *x, int *y) static void KdCrossScreen(ScreenPtr pScreen, Bool entering) { -#ifndef XIPAQ - if (entering) - KdEnableScreen (pScreen); - else - KdDisableScreen (pScreen); -#endif } int KdCurScreen; /* current event screen */ diff --git a/xserver/hw/vfb/InitOutput.c b/xserver/hw/vfb/InitOutput.c index 31ed50533..c17f12c38 100644 --- a/xserver/hw/vfb/InitOutput.c +++ b/xserver/hw/vfb/InitOutput.c @@ -280,7 +280,9 @@ ddxProcessArgument(int argc, char *argv[], int i) int screenNum; CHECK_FOR_REQUIRED_ARGUMENTS(2); screenNum = atoi(argv[i+1]); - if (screenNum < 0) + /* The protocol only has a CARD8 for number of screens in the + connection setup block, so don't allow more than that. */ + if ((screenNum < 0) || (screenNum >= 255)) { ErrorF("Invalid screen number %d\n", screenNum); UseMsg(); @@ -864,6 +866,8 @@ vfbScreenInit(int index, ScreenPtr pScreen, int argc, char **argv) (1 << DirectColor)), 10, TrueColor, 0x3ff00000, 0x000ffc00, 0x000003ff); break; + default: + return FALSE; } miSetPixmapDepths (); diff --git a/xserver/hw/xfree86/common/xf86VidMode.c b/xserver/hw/xfree86/common/xf86VidMode.c index 4dd454d8b..2ae5484e3 100644 --- a/xserver/hw/xfree86/common/xf86VidMode.c +++ b/xserver/hw/xfree86/common/xf86VidMode.c @@ -221,6 +221,9 @@ VidModeGetFirstModeline(int scrnIndex, pointer *mode, int *dotClock) return FALSE; pScrn = xf86Screens[scrnIndex]; + if (pScrn->modes == NULL) + return FALSE; + pVidMode = VMPTR(pScrn->pScreen); pVidMode->First = pScrn->modes; pVidMode->Next = pVidMode->First->next; diff --git a/xserver/hw/xfree86/dri2/dri2.c b/xserver/hw/xfree86/dri2/dri2.c index af3bcaefe..f7f700004 100644 --- a/xserver/hw/xfree86/dri2/dri2.c +++ b/xserver/hw/xfree86/dri2/dri2.c @@ -780,7 +780,8 @@ DRI2WaitSwap(ClientPtr client, DrawablePtr pDrawable) /* If we're currently waiting for a swap on this drawable, reset * the request and suspend the client. We only support one * blocked client per drawable. */ - if ((pPriv->swapsPending) && + if (pPriv && + pPriv->swapsPending && pPriv->blockedClient == NULL) { ResetCurrentRequest(client); client->sequence--; @@ -1193,14 +1194,24 @@ DRI2CloseScreen(ScreenPtr pScreen) } extern ExtensionModule dri2ExtensionModule; +extern Bool DRI2ModuleSetup(void); + +/* Called by InitExtensions() */ +Bool +DRI2ModuleSetup(void) +{ + dri2DrawableRes = CreateNewResourceType(DRI2DrawableGone, "DRI2Drawable"); + if (!dri2DrawableRes) + return FALSE; + + return TRUE; +} static pointer DRI2Setup(pointer module, pointer opts, int *errmaj, int *errmin) { static Bool setupDone = FALSE; - dri2DrawableRes = CreateNewResourceType(DRI2DrawableGone, "DRI2Drawable"); - if (!setupDone) { setupDone = TRUE; diff --git a/xserver/hw/xfree86/dri2/dri2ext.c b/xserver/hw/xfree86/dri2/dri2ext.c index 552b26b7c..a2198e255 100644 --- a/xserver/hw/xfree86/dri2/dri2ext.c +++ b/xserver/hw/xfree86/dri2/dri2ext.c @@ -50,6 +50,7 @@ #include "xf86Module.h" static ExtensionEntry *dri2Extension; +extern Bool DRI2ModuleSetup(void); static Bool validDrawable(ClientPtr client, XID drawable, Mask access_mode, @@ -636,6 +637,8 @@ DRI2ExtensionInit(void) StandardMinorOpcode); DRI2EventBase = dri2Extension->eventBase; + + DRI2ModuleSetup(); } extern Bool noDRI2Extension; diff --git a/xserver/hw/xfree86/fbdevhw/fbdevhw.c b/xserver/hw/xfree86/fbdevhw/fbdevhw.c index dee731be4..806b90658 100644 --- a/xserver/hw/xfree86/fbdevhw/fbdevhw.c +++ b/xserver/hw/xfree86/fbdevhw/fbdevhw.c @@ -509,20 +509,22 @@ fbdevHWSetVideoModes(ScrnInfoPtr pScrn) pScrn->virtualY = pScrn->display->virtualY; for (modename = pScrn->display->modes; *modename != NULL; modename++) { - for (mode = pScrn->monitor->Modes; mode != NULL; mode = mode->next) - if (0 == strcmp(mode->name,*modename)) - break; + for (mode = pScrn->monitor->Modes; mode != NULL; mode = mode->next) { + if (0 == strcmp(mode->name,*modename)) { + if (fbdevHWSetMode(pScrn, mode, TRUE)) + break; + + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "\tmode \"%s\" test failed\n", *modename); + } + } + if (NULL == mode) { xf86DrvMsg(pScrn->scrnIndex, X_INFO, "\tmode \"%s\" not found\n", *modename); continue; } - if (!fbdevHWSetMode(pScrn, mode, TRUE)) { - xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "\tmode \"%s\" test failed\n", *modename); - continue; - } xf86DrvMsg(pScrn->scrnIndex, X_INFO, "\tmode \"%s\" ok\n", *modename); diff --git a/xserver/hw/xfree86/loader/loadmod.c b/xserver/hw/xfree86/loader/loadmod.c index 9f820993a..20a471902 100644 --- a/xserver/hw/xfree86/loader/loadmod.c +++ b/xserver/hw/xfree86/loader/loadmod.c @@ -918,7 +918,7 @@ doLoadModule(const char *module, const char *path, const char **subdirlist, goto LoadModule_fail; } ret->handle = LoaderOpen(found, errmaj, errmin); - if (ret->handle < 0) + if (ret->handle == NULL) goto LoadModule_fail; ret->path = strdup(found); diff --git a/xserver/hw/xfree86/modes/xf86Crtc.c b/xserver/hw/xfree86/modes/xf86Crtc.c index d75cd770d..8906806cf 100644 --- a/xserver/hw/xfree86/modes/xf86Crtc.c +++ b/xserver/hw/xfree86/modes/xf86Crtc.c @@ -1915,19 +1915,25 @@ xf86SetScrnInfoModes (ScrnInfoPtr scrn) break; } - if (scrn->modes != NULL) { - /* For some reason, scrn->modes is circular, unlike the other mode - * lists. How great is that? - */ - for (last = scrn->modes; last && last->next; last = last->next) - ; - last->next = scrn->modes; - scrn->modes->prev = last; - if (mode) { - while (scrn->modes != mode) - scrn->modes = scrn->modes->next; - } + if (!scrn->modes) { + scrn->modes = xf86ModesAdd(scrn->modes, + xf86CVTMode(scrn->display->virtualX, + scrn->display->virtualY, + 60, 0, 0)); + } + + /* For some reason, scrn->modes is circular, unlike the other mode + * lists. How great is that? + */ + for (last = scrn->modes; last && last->next; last = last->next) + ; + last->next = scrn->modes; + scrn->modes->prev = last; + if (mode) { + while (scrn->modes != mode) + scrn->modes = scrn->modes->next; } + scrn->currentMode = scrn->modes; #ifdef XFreeXDGA if (scrn->pScreen) @@ -2529,16 +2535,7 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow) width, height); } - if (have_outputs) { - /* Mirror output modes to scrn mode list */ - xf86SetScrnInfoModes (scrn); - } else { - /* Clear any existing modes from scrn->modes */ - while (scrn->modes != NULL) - xf86DeleteMode(&scrn->modes, scrn->modes); - scrn->modes = xf86ModesAdd(scrn->modes, - xf86CVTMode(width, height, 60, 0, 0)); - } + xf86SetScrnInfoModes (scrn); success = TRUE; bailout: diff --git a/xserver/hw/xfree86/modes/xf86EdidModes.c b/xserver/hw/xfree86/modes/xf86EdidModes.c index 9ff2f0d60..86065f869 100644 --- a/xserver/hw/xfree86/modes/xf86EdidModes.c +++ b/xserver/hw/xfree86/modes/xf86EdidModes.c @@ -165,6 +165,11 @@ static Bool quirk_detailed_use_maximum_size (int scrnIndex, xf86MonPtr DDC) DDC->vendor.prod_id == 6400) return TRUE; + /* Bug #41141: Acer Aspire One */ + if (memcmp (DDC->vendor.name, "LGD", 4) == 0 && + DDC->vendor.prod_id == 0x7f01) + return TRUE; + return FALSE; } diff --git a/xserver/hw/xfree86/os-support/linux/lnx_video.c b/xserver/hw/xfree86/os-support/linux/lnx_video.c index 3d455112c..468c62193 100644 --- a/xserver/hw/xfree86/os-support/linux/lnx_video.c +++ b/xserver/hw/xfree86/os-support/linux/lnx_video.c @@ -469,11 +469,11 @@ mapVidMem(int ScreenNum, unsigned long Base, unsigned long Size, int flags) static void unmapVidMem(int ScreenNum, pointer Base, unsigned long Size) { - memType alignOff = (memType)Base - - ((memType)Base & ~(getpagesize() - 1)); + uintptr_t alignOff = (uintptr_t)Base + - ((uintptr_t)Base & ~(getpagesize() - 1)); - DebugF("alignment offset: %lx\n",alignOff); - munmap((caddr_t)((memType)Base - alignOff), (Size + alignOff)); + DebugF("alignment offset: %lx\n", (unsigned long)alignOff); + munmap((void *)((uintptr_t)Base - alignOff), (Size + alignOff)); } diff --git a/xserver/hw/xfree86/vbe/vbe.c b/xserver/hw/xfree86/vbe/vbe.c index 04132d956..06a628457 100644 --- a/xserver/hw/xfree86/vbe/vbe.c +++ b/xserver/hw/xfree86/vbe/vbe.c @@ -1036,13 +1036,16 @@ VBEInterpretPanelID(int scrnIndex, struct vbePanelID *data) mode = xf86CVTMode(data->hsize, data->vsize, PANEL_HZ, 1, 0); pScrn->monitor->nHsync = 1; - pScrn->monitor->hsync[0].lo = 31.5; + pScrn->monitor->hsync[0].lo = 29.37; pScrn->monitor->hsync[0].hi = (float)mode->Clock / (float)mode->HTotal; pScrn->monitor->nVrefresh = 1; pScrn->monitor->vrefresh[0].lo = 56.0; pScrn->monitor->vrefresh[0].hi = (float)mode->Clock*1000.0 / (float)mode->HTotal / (float)mode->VTotal; + if (pScrn->monitor->vrefresh[0].hi < 59.47) + pScrn->monitor->vrefresh[0].hi = 59.47; + free(mode); } diff --git a/xserver/hw/xfree86/xaa/xaaGC.c b/xserver/hw/xfree86/xaa/xaaGC.c index 44d50e6b6..1bc35d9f3 100644 --- a/xserver/hw/xfree86/xaa/xaaGC.c +++ b/xserver/hw/xfree86/xaa/xaaGC.c @@ -239,6 +239,7 @@ XAADestroyGC(GCPtr pGC) free(pGCPriv->XAAOps); free(pGCPriv->DashPattern); + pGCPriv->flags = 0; (*pGC->funcs->DestroyGC)(pGC); XAA_GC_FUNC_EPILOGUE (pGC); diff --git a/xserver/include/input.h b/xserver/include/input.h index 5377a0c13..0d995f5b9 100644 --- a/xserver/include/input.h +++ b/xserver/include/input.h @@ -464,13 +464,13 @@ extern _X_EXPORT void QueueKeyboardEvents( int key_code, const ValuatorMask *mask); -extern int GetProximityEvents( +extern _X_EXPORT int GetProximityEvents( InternalEvent *events, DeviceIntPtr pDev, int type, const ValuatorMask *mask); -extern void QueueProximityEvents( +extern _X_EXPORT void QueueProximityEvents( DeviceIntPtr pDev, int type, const ValuatorMask *mask); diff --git a/xserver/include/os.h b/xserver/include/os.h index 9327dc4cf..5794758ba 100644 --- a/xserver/include/os.h +++ b/xserver/include/os.h @@ -455,9 +455,10 @@ extern _X_EXPORT CallbackListPtr ReplyCallback; typedef struct { ClientPtr client; const void *replyData; - unsigned long dataLenBytes; + unsigned long dataLenBytes; /* actual bytes from replyData + pad bytes */ unsigned long bytesRemaining; Bool startOfReply; + unsigned long padBytes; /* pad bytes from zeroed array */ } ReplyInfoRec; /* stuff for FlushCallback */ diff --git a/xserver/ltmain.sh b/xserver/ltmain.sh index be5ae8aaa..23cd75709 100644 --- a/xserver/ltmain.sh +++ b/xserver/ltmain.sh @@ -1,9 +1,9 @@ -# libtool (GNU libtool) 2.4 +# libtool (GNU libtool) 2.4.2 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, -# 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. @@ -41,6 +41,7 @@ # --quiet, --silent don't print informational messages # --no-quiet, --no-silent # print informational messages (default) +# --no-warn don't display warning messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print more informational messages than default # --no-verbose don't print the extra informational messages @@ -69,7 +70,7 @@ # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) -# $progname: (GNU libtool) 2.4 +# $progname: (GNU libtool) 2.4.2 # automake: $automake_version # autoconf: $autoconf_version # @@ -79,9 +80,9 @@ PROGRAM=libtool PACKAGE=libtool -VERSION=2.4 +VERSION=2.4.2 TIMESTAMP="" -package_revision=1.3293 +package_revision=1.3337 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then @@ -136,15 +137,10 @@ progpath="$0" : ${CP="cp -f"} test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} -: ${EGREP="grep -E"} -: ${FGREP="grep -F"} -: ${GREP="grep"} -: ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} -: ${SED="sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} @@ -387,7 +383,7 @@ case $progpath in ;; *) save_IFS="$IFS" - IFS=: + IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break @@ -771,8 +767,8 @@ func_help () s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ - s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ - s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ + s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ + s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ p d } @@ -1052,6 +1048,7 @@ opt_finish=false opt_help=false opt_help_all=false opt_silent=: +opt_warning=: opt_verbose=: opt_silent=false opt_verbose=false @@ -1120,6 +1117,10 @@ esac opt_silent=false func_append preserve_args " $opt" ;; + --no-warning|--no-warn) + opt_warning=false +func_append preserve_args " $opt" + ;; --no-verbose) opt_verbose=false func_append preserve_args " $opt" @@ -2059,7 +2060,7 @@ func_mode_compile () *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ - *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup) + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; @@ -3160,11 +3161,13 @@ func_mode_install () # Set up the ranlib parameters. oldlib="$destdir/$name" + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then - func_show_eval "$old_striplib $oldlib" 'exit $?' + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. @@ -3429,7 +3432,7 @@ static const void *lt_preloaded_setup() { # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. - *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; @@ -3941,14 +3944,17 @@ func_exec_program_core () # launches target application with the remaining arguments. func_exec_program () { - for lt_wr_arg - do - case \$lt_wr_arg in - --lt-*) ;; - *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; - esac - shift - done + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac func_exec_program_core \${1+\"\$@\"} } @@ -5016,9 +5022,15 @@ void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | - $SED -e 's/\([\\"]\)/\\\1/g' \ - -e 's/^/ fputs ("/' -e 's/$/\\n", f);/' - + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' cat <<"EOF" } EOF @@ -5602,7 +5614,8 @@ func_mode_link () continue ;; - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" @@ -6107,7 +6120,8 @@ func_mode_link () lib= found=no case $deplib in - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" @@ -6792,7 +6806,7 @@ func_mode_link () test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then - add_dir="-L$dir" + add_dir="-L$absdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in @@ -7277,6 +7291,7 @@ func_mode_link () # which has an extra 1 added just for fun # case $version_type in + # correct linux to gnu/linux during the next big refactor darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result @@ -7393,7 +7408,7 @@ func_mode_link () versuffix="$major.$revision" ;; - linux) + linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" @@ -7995,6 +8010,11 @@ EOF # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then + # Remove ${wl} instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= @@ -8025,7 +8045,7 @@ EOF elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; - *) func_apped perm_rpath " $libdir" ;; + *) func_append perm_rpath " $libdir" ;; esac fi done @@ -8033,11 +8053,7 @@ EOF if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" - if test -n "$hardcode_libdir_flag_spec_ld"; then - eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" - else - eval dep_rpath=\"$hardcode_libdir_flag_spec\" - fi + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. @@ -9127,6 +9143,8 @@ EOF esac done fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" @@ -9236,7 +9254,8 @@ EOF *.la) func_basename "$deplib" name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + func_resolve_sysroot "$deplib" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" diff --git a/xserver/m4/libtool.m4 b/xserver/m4/libtool.m4 index d8125842f..44e0ecff1 100644 --- a/xserver/m4/libtool.m4 +++ b/xserver/m4/libtool.m4 @@ -1,8 +1,8 @@ # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -# Inc. +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives @@ -11,8 +11,8 @@ m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -# Inc. +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. @@ -146,6 +146,8 @@ AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl @@ -637,7 +639,7 @@ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." @@ -801,6 +803,7 @@ AC_DEFUN([LT_LANG], m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], @@ -822,6 +825,31 @@ m4_defun([_LT_LANG], ])# _LT_LANG +m4_ifndef([AC_PROG_GO], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) + fi +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef + + # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], @@ -852,6 +880,10 @@ AC_PROVIDE_IFELSE([AC_PROG_GCJ], m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) + AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) @@ -954,7 +986,13 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? - if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD @@ -962,6 +1000,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ rm -rf libconftest.dylib* rm -f conftest.* fi]) + AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no @@ -973,6 +1012,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF @@ -990,7 +1030,9 @@ _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? - if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD @@ -1035,8 +1077,8 @@ _LT_EOF ]) -# _LT_DARWIN_LINKER_FEATURES -# -------------------------- +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ @@ -1047,6 +1089,8 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported if test "$lt_cv_ld_force_load" = "yes"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi @@ -1330,14 +1374,27 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) CFLAGS="$SAVE_CFLAGS" fi ;; -sparc*-*solaris*) +*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in - yes*) LD="${LD-ld} -m elf64_sparc" ;; + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" @@ -1414,13 +1471,13 @@ old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in @@ -1600,6 +1657,11 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl lt_cv_sys_max_cmd_len=196608 ;; + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not @@ -1639,7 +1701,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. - while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do @@ -2185,7 +2247,7 @@ need_version=unknown case $host_os in aix3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH @@ -2194,7 +2256,7 @@ aix3*) ;; aix[[4-9]]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes @@ -2259,7 +2321,7 @@ beos*) ;; bsdi[[45]]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' @@ -2398,7 +2460,7 @@ m4_if([$1], [],[ ;; dgux*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' @@ -2406,10 +2468,6 @@ dgux*) shlibpath_var=LD_LIBRARY_PATH ;; -freebsd1*) - dynamic_linker=no - ;; - freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. @@ -2417,7 +2475,7 @@ freebsd* | dragonfly*) objformat=`/usr/bin/objformat` else case $host_os in - freebsd[[123]]*) objformat=aout ;; + freebsd[[23]].*) objformat=aout ;; *) objformat=elf ;; esac fi @@ -2435,7 +2493,7 @@ freebsd* | dragonfly*) esac shlibpath_var=LD_LIBRARY_PATH case $host_os in - freebsd2*) + freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) @@ -2455,17 +2513,18 @@ freebsd* | dragonfly*) ;; gnu*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; haiku*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" @@ -2526,7 +2585,7 @@ hpux9* | hpux10* | hpux11*) ;; interix[[3-9]]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' @@ -2542,7 +2601,7 @@ irix5* | irix6* | nonstopux*) nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; @@ -2579,9 +2638,9 @@ linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2644,7 +2703,7 @@ netbsd*) ;; newsos6) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes @@ -2713,7 +2772,7 @@ rdos*) ;; solaris*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2738,7 +2797,7 @@ sunos4*) ;; sysv4 | sysv4.3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -2762,7 +2821,7 @@ sysv4 | sysv4.3*) sysv4*MP*) if test -d /usr/nec ;then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH @@ -2793,7 +2852,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2803,7 +2862,7 @@ tpf*) ;; uts4*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -3225,7 +3284,7 @@ irix5* | irix6* | nonstopux*) lt_cv_deplibs_check_method=pass_all ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; @@ -3645,6 +3704,7 @@ for ac_symprfx in "" "_"; do # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ @@ -4229,7 +4289,9 @@ m4_if([$1], [CXX], [ case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi ;; esac else @@ -4321,18 +4383,33 @@ m4_if([$1], [CXX], [ ;; *) case `$CC -V 2>&1 | sed 5q` in - *Sun\ F* | *Sun*Fortran*) + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; esac ;; esac @@ -4492,7 +4569,9 @@ m4_if([$1], [CXX], [ ;; cygwin* | mingw* | cegcc*) case $cc_basename in - cl*) ;; + cl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] @@ -4517,7 +4596,6 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported @@ -4768,8 +4846,7 @@ _LT_EOF xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ @@ -5064,6 +5141,7 @@ _LT_EOF # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' @@ -5110,10 +5188,6 @@ _LT_EOF _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; - freebsd1*) - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little @@ -5126,7 +5200,7 @@ _LT_EOF ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) + freebsd2.*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes @@ -5165,7 +5239,6 @@ _LT_EOF fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes @@ -5607,9 +5680,6 @@ _LT_TAGDECL([], [no_undefined_flag], [1], _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) -_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], - [[If ld is used when linking, flag to hardcode $libdir into a binary - during linking. This must work even if $libdir does not exist]]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], @@ -5767,7 +5837,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported @@ -6137,7 +6206,7 @@ if test "$_lt_caught_CXX_error" != yes; then esac ;; - freebsd[[12]]*) + freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no @@ -6898,12 +6967,18 @@ public class foo { } }; _LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac dnl Parse the compiler output and extract the necessary @@ -7100,7 +7175,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no @@ -7233,7 +7307,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no @@ -7420,6 +7493,77 @@ CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE + +# Source file extension for Go test sources. +ac_ext=go + +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" + +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) + +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG + + # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler @@ -7489,6 +7633,13 @@ dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) + + # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], diff --git a/xserver/m4/ltoptions.m4 b/xserver/m4/ltoptions.m4 index 17cfd51c0..5d9acd8e2 100644 --- a/xserver/m4/ltoptions.m4 +++ b/xserver/m4/ltoptions.m4 @@ -326,9 +326,24 @@ dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], - [AS_HELP_STRING([--with-pic], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], - [pic_mode="$withval"], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) diff --git a/xserver/m4/ltversion.m4 b/xserver/m4/ltversion.m4 index 9c7b5d411..07a8602d4 100644 --- a/xserver/m4/ltversion.m4 +++ b/xserver/m4/ltversion.m4 @@ -9,15 +9,15 @@ # @configure_input@ -# serial 3293 ltversion.m4 +# serial 3337 ltversion.m4 # This file is part of GNU Libtool -m4_define([LT_PACKAGE_VERSION], [2.4]) -m4_define([LT_PACKAGE_REVISION], [1.3293]) +m4_define([LT_PACKAGE_VERSION], [2.4.2]) +m4_define([LT_PACKAGE_REVISION], [1.3337]) AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.4' -macro_revision='1.3293' +[macro_version='2.4.2' +macro_revision='1.3337' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) diff --git a/xserver/miext/rootless/rootlessScreen.c b/xserver/miext/rootless/rootlessScreen.c index 0801e7206..c8557066e 100644 --- a/xserver/miext/rootless/rootlessScreen.c +++ b/xserver/miext/rootless/rootlessScreen.c @@ -247,8 +247,8 @@ RootlessComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst, WindowPtr srcWin, dstWin, maskWin = NULL; if (pMask) { // pMask can be NULL - maskWin = (pMask->pDrawable->type == DRAWABLE_WINDOW) ? - (WindowPtr)pMask->pDrawable : NULL; + maskWin = (pMask->pDrawable && pMask->pDrawable->type == DRAWABLE_WINDOW) ? + (WindowPtr)pMask->pDrawable : NULL; } srcWin = (pSrc->pDrawable && pSrc->pDrawable->type == DRAWABLE_WINDOW) ? (WindowPtr)pSrc->pDrawable : NULL; diff --git a/xserver/os/io.c b/xserver/os/io.c index 421023807..c59e18c5e 100644 --- a/xserver/os/io.c +++ b/xserver/os/io.c @@ -810,6 +810,7 @@ WriteToClient (ClientPtr who, int count, const void *__buf) replyinfo.client = who; replyinfo.replyData = buf; replyinfo.dataLenBytes = count + padBytes; + replyinfo.padBytes = padBytes; if (who->replyBytesRemaining) { /* still sending data of an earlier reply */ who->replyBytesRemaining -= count + padBytes; diff --git a/xserver/randr/rrcrtc.c b/xserver/randr/rrcrtc.c index 0437795c4..305a2708e 100644 --- a/xserver/randr/rrcrtc.c +++ b/xserver/randr/rrcrtc.c @@ -1465,7 +1465,7 @@ RRConstrainCursorHarder(DeviceIntPtr pDev, ScreenPtr pScreen, int mode, int *x, crtc_bounds(crtc, &left, &right, &top, &bottom); - if ((*x >= left) && (*x <= right) && (*y >= top) && (*y <= bottom)) + if ((*x >= left) && (*x < right) && (*y >= top) && (*y < bottom)) return; } @@ -1481,24 +1481,15 @@ RRConstrainCursorHarder(DeviceIntPtr pDev, ScreenPtr pScreen, int mode, int *x, crtc_bounds(crtc, &left, &right, &top, &bottom); miPointerGetPosition(pDev, &nx, &ny); - if ((nx >= left) && (nx <= right) && (ny >= top) && (ny <= bottom)) { - if ((*x <= left) || (*x >= right)) { - int dx = *x - nx; - - if (dx > 0) - *x = right; - else if (dx < 0) - *x = left; - } - - if ((*y <= top) || (*y >= bottom)) { - int dy = *y - ny; - - if (dy > 0) - *y = bottom; - else if (dy < 0) - *y = top; - } + if ((nx >= left) && (nx < right) && (ny >= top) && (ny < bottom)) { + if (*x < left) + *x = left; + if (*x >= right) + *x = right - 1; + if (*y < top) + *y = top; + if (*y >= bottom) + *y = bottom - 1; return; } diff --git a/xserver/record/record.c b/xserver/record/record.c index 69fca727e..93383cee4 100644 --- a/xserver/record/record.c +++ b/xserver/record/record.c @@ -269,8 +269,9 @@ RecordFlushReplyBuffer( * device events and EndOfData, pClient is NULL. * category is the category of the protocol element, as defined * by the RECORD spec. - * data is a pointer to the protocol data, and datalen is its length - * in bytes. + * data is a pointer to the protocol data, and datalen - padlen + * is its length in bytes. + * padlen is the number of pad bytes from a zeroed array. * futurelen is the number of bytes that will be sent in subsequent * calls to this function to complete this protocol element. * In those subsequent calls, futurelen will be -1 to indicate @@ -290,7 +291,7 @@ RecordFlushReplyBuffer( */ static void RecordAProtocolElement(RecordContextPtr pContext, ClientPtr pClient, - int category, pointer data, int datalen, int futurelen) + int category, pointer data, int datalen, int padlen, int futurelen) { CARD32 elemHeaderData[2]; int numElemHeaders = 0; @@ -399,15 +400,20 @@ RecordAProtocolElement(RecordContextPtr pContext, ClientPtr pClient, } if (datalen) { + static char padBuffer[3]; /* as in FlushClient */ memcpy(pContext->replyBuffer + pContext->numBufBytes, - data, datalen); - pContext->numBufBytes += datalen; + data, datalen - padlen); + pContext->numBufBytes += datalen - padlen; + memcpy(pContext->replyBuffer + pContext->numBufBytes, + padBuffer, padlen); + pContext->numBufBytes += padlen; } } else + { RecordFlushReplyBuffer(pContext, (pointer)elemHeaderData, - numElemHeaders, (pointer)data, datalen); - + numElemHeaders, (pointer)data, datalen - padlen); + } } /* RecordAProtocolElement */ @@ -485,19 +491,19 @@ RecordABigRequest(RecordContextPtr pContext, ClientPtr client, xReq *stuff) /* record the request header */ bytesLeft = client->req_len << 2; RecordAProtocolElement(pContext, client, XRecordFromClient, - (pointer)stuff, SIZEOF(xReq), bytesLeft); + (pointer)stuff, SIZEOF(xReq), 0, bytesLeft); /* reinsert the extended length field that was squished out */ bigLength = client->req_len + bytes_to_int32(sizeof(bigLength)); if (client->swapped) swapl(&bigLength, n); RecordAProtocolElement(pContext, client, XRecordFromClient, - (pointer)&bigLength, sizeof(bigLength), /* continuation */ -1); + (pointer)&bigLength, sizeof(bigLength), 0, /* continuation */ -1); bytesLeft -= sizeof(bigLength); /* record the rest of the request after the length */ RecordAProtocolElement(pContext, client, XRecordFromClient, - (pointer)(stuff + 1), bytesLeft, /* continuation */ -1); + (pointer)(stuff + 1), bytesLeft, 0, /* continuation */ -1); } /* RecordABigRequest */ @@ -544,7 +550,7 @@ RecordARequest(ClientPtr client) RecordABigRequest(pContext, client, stuff); else RecordAProtocolElement(pContext, client, XRecordFromClient, - (pointer)stuff, client->req_len << 2, 0); + (pointer)stuff, client->req_len << 2, 0, 0); } else /* extension, check minor opcode */ { @@ -568,7 +574,7 @@ RecordARequest(ClientPtr client) else RecordAProtocolElement(pContext, client, XRecordFromClient, (pointer)stuff, - client->req_len << 2, 0); + client->req_len << 2, 0, 0); break; } } /* end for each minor op info */ @@ -621,7 +627,8 @@ RecordAReply(CallbackListPtr *pcbl, pointer nulldata, pointer calldata) if (pContext->continuedReply) { RecordAProtocolElement(pContext, client, XRecordFromServer, - (pointer)pri->replyData, pri->dataLenBytes, /* continuation */ -1); + (pointer)pri->replyData, pri->dataLenBytes, + pri->padBytes, /* continuation */ -1); if (!pri->bytesRemaining) pContext->continuedReply = 0; } @@ -631,7 +638,7 @@ RecordAReply(CallbackListPtr *pcbl, pointer nulldata, pointer calldata) if (majorop <= 127) { /* core reply */ RecordAProtocolElement(pContext, client, XRecordFromServer, - (pointer)pri->replyData, pri->dataLenBytes, pri->bytesRemaining); + (pointer)pri->replyData, pri->dataLenBytes, 0, pri->bytesRemaining); if (pri->bytesRemaining) pContext->continuedReply = 1; } @@ -653,7 +660,7 @@ RecordAReply(CallbackListPtr *pcbl, pointer nulldata, pointer calldata) { RecordAProtocolElement(pContext, client, XRecordFromServer, (pointer)pri->replyData, - pri->dataLenBytes, pri->bytesRemaining); + pri->dataLenBytes, 0, pri->bytesRemaining); if (pri->bytesRemaining) pContext->continuedReply = 1; break; @@ -725,7 +732,7 @@ RecordADeliveredEventOrError(CallbackListPtr *pcbl, pointer nulldata, pointer ca } RecordAProtocolElement(pContext, pClient, - XRecordFromServer, pEvToRecord, SIZEOF(xEvent), 0); + XRecordFromServer, pEvToRecord, SIZEOF(xEvent), 0, 0); } } /* end for each event */ } /* end this client is on this context */ @@ -776,7 +783,7 @@ RecordSendProtocolEvents(RecordClientsAndProtocolPtr pRCAP, } RecordAProtocolElement(pContext, NULL, - XRecordFromServer, pEvToRecord, SIZEOF(xEvent), 0); + XRecordFromServer, pEvToRecord, SIZEOF(xEvent), 0, 0); /* make sure device events get flushed in the absence * of other client activity */ @@ -2420,7 +2427,7 @@ ProcRecordEnableContext(ClientPtr client) assert(numEnabledContexts > 0); /* send StartOfData */ - RecordAProtocolElement(pContext, NULL, XRecordStartOfData, NULL, 0, 0); + RecordAProtocolElement(pContext, NULL, XRecordStartOfData, NULL, 0, 0, 0); RecordFlushReplyBuffer(pContext, NULL, 0, NULL, 0); return Success; } /* ProcRecordEnableContext */ @@ -2451,7 +2458,7 @@ RecordDisableContext(RecordContextPtr pContext) if (!pContext->pRecordingClient) return; if (!pContext->pRecordingClient->clientGone) { - RecordAProtocolElement(pContext, NULL, XRecordEndOfData, NULL, 0, 0); + RecordAProtocolElement(pContext, NULL, XRecordEndOfData, NULL, 0, 0, 0); RecordFlushReplyBuffer(pContext, NULL, 0, NULL, 0); /* Re-enable request processing on this connection. */ AttendClient(pContext->pRecordingClient); @@ -2775,7 +2782,7 @@ RecordConnectionSetupInfo(RecordContextPtr pContext, NewClientInfoRec *pci) SwapConnSetupPrefix(pci->prefix, (xConnSetupPrefix*)pConnSetup); SwapConnSetupInfo((char*)pci->setup, (char*)(pConnSetup + prefixsize)); RecordAProtocolElement(pContext, pci->client, XRecordClientStarted, - (pointer)pConnSetup, prefixsize + restsize, 0); + (pointer)pConnSetup, prefixsize + restsize, 0, 0); free(pConnSetup); } else @@ -2784,9 +2791,9 @@ RecordConnectionSetupInfo(RecordContextPtr pContext, NewClientInfoRec *pci) * data in two pieces */ RecordAProtocolElement(pContext, pci->client, XRecordClientStarted, - (pointer)pci->prefix, prefixsize, restsize); + (pointer)pci->prefix, prefixsize, 0, restsize); RecordAProtocolElement(pContext, pci->client, XRecordClientStarted, - (pointer)pci->setup, restsize, /* continuation */ -1); + (pointer)pci->setup, restsize, 0, /* continuation */ -1); } } /* RecordConnectionSetupInfo */ @@ -2863,7 +2870,7 @@ RecordAClientStateChange(CallbackListPtr *pcbl, pointer nulldata, pointer callda { if (pContext->pRecordingClient && pRCAP->clientDied) RecordAProtocolElement(pContext, pClient, - XRecordClientDied, NULL, 0, 0); + XRecordClientDied, NULL, 0, 0, 0); RecordDeleteClientFromRCAP(pRCAP, pos); } } |