[Interest] qtwebkit and the xcb platform plugin (on OS X)?

René J.V. Bertin rjvbertin at gmail.com
Mon Jan 26 01:01:59 CET 2015


Hi,

I've been trying to build the freetype fontengine and the xcb platform plugin on OS X in an incremental build, i.e. without cleaning my out-of-tree build directory first. That worked fine for the freetype fontengine (which isn't even an additional component), but forcing the xcb plugin to be built has more side-effects.
QtWebKit is being rebuilt, and I'm running into errors showing that PLATFORM(MAC) isn't (always) defined (or true). Am I right in deducing that there's a different QtWebKit *something* for xcb? It doesn't appear to be the case that I'm going to end up with an xcb-specific QtWebKit, because I can simply add `|| defined(Q_OS_OSX)` after the failing preprocessor expression, and the compilation succeeds.

Howver, I still end up with this in the final link step:

> Undefined symbols for architecture x86_64:
>   "_XCreateColormap", referenced from:
>       WebKit::NetscapePlugin::platformPostInitializeWindowless() in
>       libWebKit2.a(NetscapePluginX11.o)>   
>   "_XCreatePixmap", referenced from:
>       WebKit::NetscapePlugin::platformGeometryDidChange() in
>       libWebKit2.a(NetscapePluginX11.o)>   
>   "_XDefaultDepth", referenced from:
>       WebKit::NetscapePlugin::platformPostInitializeWindowless() in
>       libWebKit2.a(NetscapePluginX11.o)
>       WebKit::NetscapePlugin::platformGeometryDidChange() in
>       libWebKit2.a(NetscapePluginX11.o)>   
>   "_XDefaultRootWindow", referenced from:
>       WebKit::NetscapePlugin::platformPostInitializeWindowless() in
>       libWebKit2.a(NetscapePluginX11.o)
>       WebKit::NetscapePlugin::platformGeometryDidChange() in
>       libWebKit2.a(NetscapePluginX11.o)
>       WebKit::NetscapePlugin::platformHandleMouseEvent(WebKit::WebMouseEven
>       t const&) in libWebKit2.a(NetscapePluginX11.o)
>       WebKit::NetscapePlugin::platformHandleWheelEvent(WebKit::WebWheelEven
>       t const&) in libWebKit2.a(NetscapePluginX11.o)
>       WebKit::NetscapePlugin::platformHandleMouseEnterEvent(WebKit::WebMous
>       eEvent const&) in libWebKit2.a(NetscapePluginX11.o)
>       WebKit::NetscapePlugin::platformHandleMouseLeaveEvent(WebKit::WebMous
>       eEvent const&) in libWebKit2.a(NetscapePluginX11.o)
>       WebKit::NetscapePlugin::platformHandleKeyboardEvent(WebKit::WebKeyboa
>       rdEvent const&) in libWebKit2.a(NetscapePluginX11.o) ...
>   
>   "_XDefaultScreen", referenced from:
>       WebKit::NetscapePlugin::platformPostInitializeWindowless() in
>       libWebKit2.a(NetscapePluginX11.o)
>       WebKit::NetscapePlugin::platformGeometryDidChange() in
>       libWebKit2.a(NetscapePluginX11.o)>   
>   "_XFlush", referenced from:
>       WebKit::NetscapePlugin::platformPostInitializeWindowed(bool, unsigned
>       long long) in libWebKit2.a(NetscapePluginX11.o)
>       WebKit::NetscapePlugin::platformPostInitialize() in
>       libWebKit2.a(NetscapePluginX11.o)>   
>   "_XFree", referenced from:
>       WebKit::NetscapePlugin::platformPostInitializeWindowless() in
>       libWebKit2.a(NetscapePluginX11.o)>   
>   "_XFreeColormap", referenced from:
>       WebKit::NetscapePlugin::platformDestroy() in
>       libWebKit2.a(NetscapePluginX11.o)>   
>   "_XFreePixmap", referenced from:
>       WebKit::NetscapePlugin::platformDestroy() in
>       libWebKit2.a(NetscapePluginX11.o)
>       WebKit::NetscapePlugin::platformGeometryDidChange() in
>       libWebKit2.a(NetscapePluginX11.o)>   
>   "_XGetImage", referenced from:
>       WebKit::NetscapePlugin::platformPaint(WebCore::GraphicsContext*,
>       WebCore::IntRect const&, bool) in libWebKit2.a(NetscapePluginX11.o)>   
>   "_XGetVisualInfo", referenced from:
>       WebKit::NetscapePlugin::platformPostInitializeWindowless() in
>       libWebKit2.a(NetscapePluginX11.o)>   
>   "_XOpenDisplay", referenced from:
>       WebKit::NetscapePlugin::x11HostDisplay() in
>       libWebKit2.a(NetscapePluginX11.o)
>       WebKit::NetscapePlugin::platformPostInitializeWindowed(bool, unsigned
>       long long) in libWebKit2.a(NetscapePluginX11.o)
>       WebKit::NetscapePlugin::platformPostInitializeWindowless() in
>       libWebKit2.a(NetscapePluginX11.o)
>       WebKit::NetscapePlugin::platformPostInitialize() in
>       libWebKit2.a(NetscapePluginX11.o)
>       WebKit::NetscapePlugin::platformDestroy() in
>       libWebKit2.a(NetscapePluginX11.o)
>       WebKit::NetscapePlugin::platformGeometryDidChange() in
>       libWebKit2.a(NetscapePluginX11.o)
>       WebKit::NetscapePlugin::platformPaint(WebCore::GraphicsContext*,
>       WebCore::IntRect const&, bool) in libWebKit2.a(NetscapePluginX11.o)
>       ...
>   
>   "_XSync", referenced from:
>       WebKit::NetscapePlugin::platformGeometryDidChange() in
>       libWebKit2.a(NetscapePluginX11.o)
>       WebKit::NetscapePlugin::platformPaint(WebCore::GraphicsContext*,
>       WebCore::IntRect const&, bool) in libWebKit2.a(NetscapePluginX11.o)> 
> ld: symbol(s) not found for architecture x86_64

which surprises me, and which I don't understand yet.

R



More information about the Interest mailing list