xlib: Disable fallback compositor with xlib-xcb

When xlib-xcb is enabled, this is just dead code which is never used. Thus, this
shouldn't hurt. However, this does include cairo-xlib-private.h. Shouldn't be a
problem? Well, that header contains static inline functions which some compiler
on Solaris will emit even when they are unused.

This brings us to the real problem: That static inline function refers to a
function which isn't compiled with xlib-xcb and thus linking fails with
undefined symbols.

This can be reproduced with GCC by adding a call to
_cairo_xlib_screen_put_gc(NULL, NULL, 0, 0); to
_cairo_xlib_fallback_compositor_get.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=48489
Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit is contained in:
Uli Schlachter 2012-04-11 21:37:55 +02:00
parent 09de481ce5
commit 07fc63676d

View file

@ -42,6 +42,8 @@
#include "cairoint.h"
#if !CAIRO_HAS_XLIB_XCB_FUNCTIONS
#include "cairo-xlib-private.h"
#include "cairo-compositor-private.h"
@ -52,3 +54,5 @@ _cairo_xlib_fallback_compositor_get (void)
/* XXX Do something interesting here to mitigate fallbacks ala xcb */
return &_cairo_fallback_compositor;
}
#endif /* !CAIRO_HAS_XLIB_XCB_FUNCTIONS */