[webkit-gtk] WTF is in both libjavascriptcoregtk and libwebkit2gtk

Adrián Pérez de Castro aperez at igalia.com
Sat Jan 16 06:06:53 PST 2016


Hello,

Quoting Carlos Garcia Campos (2016-01-16 15:03:39)
> El vie, 15-01-2016 a las 22:57 -0800, Jeremy Huddleston Sequoia
> escribió:
> > Hey folks,
> > 
> > WebKit2 isn't initializing correctly for us in 2.11.3, and clients
> > are crashing on initial launch.
> > 
> > Philip first mentioned this in https://bugs.webkit.org/show_bug.cgi?i
> > d=144557, and the issue is currently being tracked in
> > https://bugs.webkit.org/show_bug.cgi?id=153176
> > 
> > Note that this is a regression since 2.4.x, so it may have been this
> > way for quite a while.
> > 
> > The crux of the issue is that WebKit::InitializeWebKit2() calls
> > JSC::initializeThreading() which calls
> > WTF::initializeThreading().  However, there are two different copies
> > of WTF::initializeThreading() in process.  One
> > WTF::initializeThreading() is in libjavascriptcoregtk, and the other
> > is in libwebkit2gtk.  The libwebkit2gtk version thus does not get
> > initialized, and we fail an assertion in here.
> > 
> > Obviously, we want just a single instance of this class.
> > 
> > Should WTF be a separate dylib?  It sounds like that's appropriate
> > based on this layering.  Is the WTF API expected to be provided by
> > both libjavascriptcoregtk and libwebkit2gtk?
> 
> I think this is because WebCore and JSC are both linking to WTF
> statically. Since WebCore depends on JSC maybe we could just remove WTF
> from WebCore CMakeLists. Could you try removing WTF${DEBUG_SUFFIX}
> from WebCore_LIBRARIES in Source/WebCore/CMakeLists.txt?

That may not work: the linker will only pick from static libraries the *.o
objects it needs. That is: only *.o files from which symbols are used will
be copied to the output libjavascriptcoregtk.so — if libwebkit2gtk.so uses
symbols from WTF which pull additional *.o files from the WTF static library,
then the dynamic linker won't be able to load it at run-time.

IMHO a shared libWTF.so may as well be the best solution.

Cheers,

--
 ⌨ Adrian

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: signature
URL: <https://lists.webkit.org/pipermail/webkit-gtk/attachments/20160116/81927873/attachment.sig>


More information about the webkit-gtk mailing list