Commit graph

11660 commits

Author SHA1 Message Date
Daniel Stone
fc13888f19 Xinerama: Fix ExtensionInit prototype
Huh, so I guess INITARGS used to be int argc, char *argv then.  Either
way, it's now void, so fix that ...

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Reviewed-by: Cyril Brulebois <kibi@debian.org>
Reviewed-by: Jamey Sharp <jamey@minilop.net>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit bddb8c6cbe)
2012-08-01 18:04:37 -07:00
Daniel Stone
ce106ae299 Xorg: Link XKB DDX library after core server libs
libxorgxkb.a contains a number of libraries which are used by XKB action
code to call back into the DDX, e.g. for VT switching, termination, grab
breaking, et al.  Make sure libxkb.a comes first in the link order, so
it can mark XkbDDX* as used in order for the linker to not discard them.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 67953d6975)
2012-08-01 18:02:49 -07:00
Daniel Stone
7b7db8ced2 Don't make failure to -nolisten fatal
If failing to disable a protocol specified by -nolisten failed, we'd
throw a FatalError and bomb startup entirely.  From poking at xtrans, it
looks like the only way we can get a failure here is because we've
specified a protocol name which doesn't exist, which probably doesn't
constitute a security risk.

And it makes it possible to start gdm even though you've built with
--disable-tcp-transport.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 656af2c7e7)
2012-08-01 18:02:06 -07:00
Alan Coopersmith
af7ff8f1cc Initialize padding bits to 0 in ErrorConnMax()
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Tested-by: Daniel Stone <daniel@fooishbar.org>
(cherry picked from commit 7a29f68782)
2012-08-01 17:59:52 -07:00
Alan Coopersmith
f29c0ddd5a Set padding bytes to 0 in WriteToClient
Clear them out when needed instead of leaving whatever values were
present in previously sent messages.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Tested-by: Daniel Stone <daniel@fooishbar.org>
(cherry picked from commit bed610fcae)
2012-08-01 17:59:40 -07:00
Alan Coopersmith
eeefadf95e Use calloc to zero fill buffers being allocated for replies & events
Ensures padding bytes are zero-filled

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Tested-by: Daniel Stone <daniel@fooishbar.org>
(cherry picked from commit cdf5bcd420)
2012-08-01 17:59:23 -07:00
Alan Coopersmith
8cefa9bf07 xf86dga2.c & xf86vmode.c: Move REQUEST_SIZE_MATCH checks before using stuff
Seems silly waiting to check if the client failed to send us enough bytes
until after we've already tried using them.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Tested-by: Daniel Stone <daniel@fooishbar.org>
(cherry picked from commit ef0f701c92)
2012-08-01 17:59:07 -07:00
Alan Coopersmith
18863154bd ProcRRGetScreenInfo: swap configTimestamp as well
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Tested-by: Daniel Stone <daniel@fooishbar.org>
(cherry picked from commit 15bc13c8d0)
2012-08-01 17:57:46 -07:00
Jaroslav Šmíd
abffc882af Bug 51375: Xorg doesn't set status for RRGetOutputInfo
https://bugs.freedesktop.org/show_bug.cgi?id=51375
https://bugs.freedesktop.org/attachment.cgi?id=63397

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Tested-by: Daniel Stone <daniel@fooishbar.org>
(cherry picked from commit 3a013b8816)
2012-08-01 17:56:46 -07:00
Keith Packard
5c6c4fc082 Add 'install-headers' target in the top-level Makefile
This target recursively locates directories with sdk headers and
installs them all. Useful when you want to build a complete new X
server and drivers without having to install the X server before the
drivers are actually working.

Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit d1c639c006)
2012-08-01 17:55:06 -07:00
Dave Airlie
4060ebfea0 xf86: cursor code got mangled by indenting
This fixes some really ugly code that got mangled by the indenting.

Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 2c52d776a4)
2012-08-01 17:51:49 -07:00
Peter Hutterer
31ca2e2d5d list.h: don't crash when removing an element from a NULL list
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 167993254a)
2012-08-01 17:50:45 -07:00
Michal Srb
7197c1c571 Look for ModuleData only in appropriate library
LoaderSymbol calls dlsym with RTLD_DEFAULT pseudo handle making it search in
every loaded library. In addition glibc adds NODELETE flag to the library
containing the symbol.

It's used in doLoadModule to locate <modulename>ModuleData symbol, the
module's library gets the flag and is kept in memory even after it is
unloaded.

This patch adds LoaderSymbolFromModule function that looks for symbol only in
library specified by handle. That way the NODELETE flag isn't added.

This glibc behavior doesn't seem to be documented, but even if other
implementations differ, there is no reason to search ModuleData symbol outside
the module's library.

Signed-off-by: Michal Srb <msrb@suse.com>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>

v2: Switch LoaderSymbolFromModule arguments order.
    Correct description.
Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 258abbf823)
2012-08-01 17:40:41 -07:00
Peter Hutterer
b0e3696e01 dix: fix dereference before null check
Found by Coverity.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 55ff20eb37)
2012-08-01 17:38:28 -07:00
Peter Hutterer
b99a4ac32c xkb: use local variable instead of casting arg
No functional changes.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 252a69b592)
2012-08-01 17:37:59 -07:00
Aaron Plattner
465a7a253a randr: Fix REQUEST vs. REQUEST_SIZE_MATCH mismatch
ProcRRGetScreenSizeRange uses REQUEST(xRRGetScreenSizeRangeReq) followed by
REQUEST_SIZE_MATCH(xRRGetScreenInfoReq).  This happens to work out because both
requests have the same size, so this is not a functional change, just a cosmetic
one.

Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 212b980323)
2012-08-01 17:32:49 -07:00
Keith Packard
6f4b6bca4c randr: Catch two more potential unset rrScrPriv uses
Ricardo Salveti <ricardo.salveti@linaro.org> found one place where the
randr code could use the randr screen private data without checking
for null first. This happens when the X server is running with
multiple screens, some of which are randr enabled and some of which
are not. Applications making protocol requests to the non-randr
screens can cause segfaults where the server touches the unset private
structure.

I audited the code and found two more possible problem spots; the
trick to auditing for this issue was to look for functions not taking
a RandR data structure and where there was no null screen private
check above them in the call graph.

Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 855003c333)
2012-08-01 17:31:49 -07:00
Keith Packard
47c61c5647 randr: Clean up compiler warnings about unused and shadowing variables
set but not used variables
shadowing a previous local

A hidden problem was that the VERIFY_RR_* macros define local 'rc'
variables, any other local definitions for those would be shadowed and
generate warnings from gcc. I've renamed the other locals 'ret'
instead of 'rc'.

Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 4ba340cfaa)
2012-08-01 17:30:32 -07:00
Ricardo Salveti de Araujo
ba0fe0092c randr: first check pScrPriv before using the pointer at RRFirstOutput
Fix a seg fault in case pScrPriv is NULL at ProcRRGetScreenInfo,
which later calls RRFirstOutput.

Signed-off-by: Ricardo Salveti de Araujo <ricardo.salveti@linaro.org>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 32603f57ca)
2012-08-01 17:30:15 -07:00
Alan Coopersmith
b348cfd4b8 Remove obsolete tab stop comments from hw/xfree86/parser/*.c
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit ff541e0a1f)
2012-08-01 17:15:46 -07:00
Alan Coopersmith
94c7d0f8b9 Fix some overly indented/poorly line wrapped comments in dix/events.c
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 687536b104)
2012-08-01 17:15:21 -07:00
Alan Coopersmith
49bb2694f1 OtherClientGone: Remove unreachable return statement
Now that FatalError is marked as _X_NORETURN, the compilers know we
can't get here, and the return statement added to make them happy in
the past now makes them unhappy.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 93a378aad4)
2012-08-01 17:15:21 -07:00
Julien Cristau
e08f1c261c Bump video ABI version to 12.1
Track the addition of DRI2CreateDrawable2.

Signed-off-by: Julien Cristau <jcristau@debian.org>
2012-07-30 19:26:26 +02:00
Michel Dänzer
953c8df9fb glx: Free DRI2 drawable reference to destroyed GLX drawable.
Otherwise the reference can lead to use after free in
__glXDRIinvalidateBuffers().

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50019

Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit a2d0829531)

Signed-off-by: Julien Cristau <jcristau@debian.org>
2012-07-30 19:26:20 +02:00
Michel Dänzer
60da502963 dri2: Add DRI2CreateDrawable2.
Same as DRI2CreateDrawable, except it can return the DRI2 specific XID of the
DRI2 drawable reference to the base drawable.

Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 8a87acc9e5)

Signed-off-by: Julien Cristau <jcristau@debian.org>
2012-07-30 19:26:15 +02:00
Daniel Stone
cdeb178cd0 DRI2: Remove prototype for DRI2DestroyDrawable
DRI2DestroyDrawable() was still being _X_EXPORTed, but hasn't existed
since 1da1f33f last year.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Reviewed-by: Cyril Brulebois <kibi@debian.org>
Reviewed-by: Jamey Sharp <jamey@minilop.net>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit b8a3267c36)

Signed-off-by: Julien Cristau <jcristau@debian.org>
2012-07-30 19:26:08 +02:00
Peter Hutterer
60e0d20566 configure.ac: Bump to Version 1.12.3
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2012-07-09 10:44:01 +10:00
Torsten Kaiser
738e55ebbd xfree86: EDID Est III parsing skips some modes
This loop needs to count from 7 to 0, not only from 7 to 1.
The current code always skips the modes {1152, 864, 75, 0}, {1280, 1024, 85, 0},
{1400, 1050, 75, 0}, {1600, 1200, 70, 0} and {1920, 1200, 60, 0}.

Signed-off-by: Torsten Kaiser <x11@ariolc.dyndns.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 7c9d8cbd36)
2012-07-09 10:39:29 +10:00
Torsten Kaiser
f27fcb81c4 xfree86: EDID Est III parsing can walk off end of array
Using -O3 gcc notes that m could reach beyound the end of the EstIIIModes array,
if the last bits of the 11s byte where set.
Fix this, by extending the array to cover all possible bits from est.

https://bugs.freedesktop.org/show_bug.cgi?id=45623

Signed-off-by: Torsten Kaiser <x11@ariolc.dyndns.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 0b3abacb64)
2012-07-09 10:39:24 +10:00
Peter Hutterer
e4497cd002 xfree86: always enable SIGIO on OsVendorInit (#50957)
Drivers call xf86InstallSIGIOHandler() for their fd on DEVICE_ON. That
function does not actually enable the signal if it was blocked to begin
with. As a result, if one vt-switches away from the server (SIGIO is
blocked) and then triggers a server regeneration, the signal remains
blocked and input devices are dead.

Avoid this by always unblocking SIGIO when we start the server.

X.Org Bug 50957 <http://bugs.freedesktop.org/show_bug.cgi?id=50957>

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 9f1edced9a)
2012-07-09 10:39:03 +10:00
Peter Hutterer
ac85a6866f Xi: extend PropagateMask to EMASKSIZE
Number of devices is 2 + MAXDEVICES, with index 0 and 1 reserved for
XIAll{Master}Devices. At the current size, PropagateMask would be overrun in
RecalculateDeviceDeliverableEvents().

Found by Coverity.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 12bfb4cf1b)
2012-07-09 10:39:02 +10:00
Peter Hutterer
eca5de2f1a dix: fix memory leak in TouchEventHistoryReplay
Don't leak if ti->history is NULL.

Found by coverity.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit a9c09f8f8e)
2012-07-09 10:39:02 +10:00
Peter Hutterer
c4d28c40bf xfree86: fix use-after-free issue in checkInput
*dev is the condition of the while loop we're in, reset to NULL after
freeing

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit e3f47be9fb)
2012-07-09 10:39:02 +10:00
Peter Hutterer
487e8e8299 configure.ac: Version bump to 1.12.2.902 (1.12.3 RC2)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2012-07-02 10:15:14 +10:00
Andy Ritger
d21b6f0a2d randr: Don't recurse into mieqProcessInputEvents() from RRTellChanged().
Call UpdateCurrentTimeIf(), not UpdateCurrentTime(), from RRTellChanged().
The latter calls ProcessInputEvents(), which can trigger a recursion
into mieqProcessInputEvents().  The former omits the call to
ProcessInputEvents().

Signed-off-by: Andy Ritger <aritger@nvidia.com>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit dae317e726)
2012-07-01 09:45:42 +10:00
Peter Hutterer
a6de3eac66 dix: if the scroll valuator reaches INT_MAX, reset to 0
Too much scrolling down may eventually trigger an overflow of the valuator.
If this happens, reset the valuator to 0 and skip this event for button
emulation. Clients will have to figure out a way to deal with this, but a
scroll event from (close to) INT_MAX to 0 is a hint of that it needs to be
ignored.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
(cherry picked from commit 54476b5e44)
2012-07-01 09:36:04 +10:00
Peter Hutterer
b0be2d29b2 Xi: fix XITouchClass sourceid assignment
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
(cherry picked from commit 72cfc1a097)
2012-06-25 14:05:03 +10:00
Peter Hutterer
4af8e22b1a xkb: warn if XKB SlowKeys have been automatically enabled
Slow keys are enabled when the XKB AccessX features are generally enabled
(ctrls->enabled_ctrls & XkbAccessXKeysMask) and either shift key is held for
8 seconds. For the unsuspecting user this appears as if the keyboard
suddenly stops working.

Print a warning to the log, so we can later tell them "told you so".

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
(cherry picked from commit ff41753b1b)
2012-06-20 11:40:41 +10:00
Peter Hutterer
0cecc4fc0f configure.ac: Version bump to 1.12.2.901 (1.12.3 RC1)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2012-06-15 13:09:50 +10:00
Julien Cristau
aaf4890627 Xi: make stub DeleteInputDeviceRequest call RemoveDevice
DeleteInputDeviceRequest is called from CloseDownDevices on reset, so
call RemoveDevice to avoid leaking devices in Xvfb/Xnest/Xwin.

Signed-off-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit e4153c1d91)
2012-06-05 12:10:36 +10:00
Marcin Slusarz
f4a1ecb928 xfree86: fix mouse wheel support for DGA clients
xf86-input-evdev (since "smooth scrolling" support was added) can send mouse
motion and wheel events in one batch, so we need to handle it properly.
Otherwise mouse wheel events which come with motion events are lost
and separate mouse wheel events are handled through non-DGA path.

Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 2d4fda4b09)
2012-06-05 12:10:29 +10:00
Peter Hutterer
889ce06946 dix: undo transformation for missing valuators (#49347)
last.valuators contains the transformed valuators of the device. If the
device submits events with x/y missing, we need to get that from
last.valuators and undo the transformation to that axis.

X.Org Bug 49347 <http://bugs.freedesktop.org/show_bug.cgi?id=49347>

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
(cherry picked from commit 749a593e49)
2012-06-05 12:10:15 +10:00
Siddhesh Poyarekar
4c21adab7c xkb: Allocate size_syms correctly when width of a type increases
The current code seems to skip syms with width less than
type->num_levels when calculating the total size for the new
size_syms. This leads to less space being allocated than necessary
during the next phase, which is to copy over the syms to the new
location. This results in an overflow leading to a crash.

Signed-off-by: Siddhesh Poyarekar <siddhesh.poyarekar@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 42ae2e8199)
2012-06-05 12:02:28 +10:00
Michal Suchanek
472c2d1af7 Fix crash for motion events from devices without valuators
A WarpPointer request may trigger a motion event on a device without
valuators. That request is ignored by GetPointerEvents but during smooth
scroll emulation we dereference dev->valuators to get the number of axes.

Break out early if the device doesn't have valuators.

Signed-off-by: Michal Suchanek <hramrach@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 88c767edb0)
2012-06-05 12:02:28 +10:00
Alan Coopersmith
97cae5e07a Convert sbusPaletteKey to latest DevPrivate API
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 96e0ab5496)
2012-05-29 13:19:08 -07:00
Alan Coopersmith
3484ef2de5 cvt man page should use Hz, not kHz, for vertical refresh rate
https://bugs.freedesktop.org/show_bug.cgi?id=48311

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Julien Cristau <jcristau@debian.org>
(cherry picked from commit c3180a74a4)
2012-05-29 13:18:59 -07:00
Alan Coopersmith
a5808eae02 Undocument Font Module loading
Code was deleted in commit affec10635

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
(cherry picked from commit 5a3a98fcb7)
2012-05-29 13:18:41 -07:00
Alan Coopersmith
9a4e2d80a5 Undocument mandatory loadable modules
The code to implement was deleted when BaseModules[] was emptied by
the replacement of the "pcidata" module with libpciaccess calls
in commit 46f55f5dea.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
(cherry picked from commit afcb7ba24e)
2012-05-29 13:18:27 -07:00
Jeremy Huddleston
19126c0b36 XQuartz: Avoid a race in initialization of darwinPointer
http://xquartz.macosforge.org/trac/ticket/579

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit acdc4f54ee)
2012-05-29 13:17:03 -07:00
Jeremy Huddleston
198a876e34 XQuartz: Provide fls implementation for Tiger
Regression-from: 30623d6ff7
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit f5fc533411)
2012-05-29 13:17:03 -07:00