Bug 115536

Summary: [GTK] libWTF is missing from the LIBADD list in WebKit2
Product: WebKit Reporter: Xan Lopez <xan.lopez>
Component: WebKitGTKAssignee: Nobody <webkit-unassigned>
Severity: Normal CC: commit-queue, gns, mrobinson, xan.lopez, zan
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Description Flags
libwtf.diff none

Description Xan Lopez 2013-05-02 16:56:56 PDT
So I get this:

src/epiphany: symbol lookup error: /home/xan/gnome/lib64/libwebkit2gtk-3.0.so.0: undefined symbol: _ZN3WTF18FunctionDispatcherC2Ev

and FunctionDispatcher methods are indeed undefined:

[jhbuild] niraikanai:~/gnome/lib64%nm libwebkitgtk-3.0.so | grep FunctionDispatch
                 U _ZN3WTF18FunctionDispatcherC2Ev
                 U _ZN3WTF18FunctionDispatcherD2Ev

Adding libWTF.la to LIBADD fixes it.
Comment 1 Xan Lopez 2013-05-02 17:00:24 PDT
Created attachment 200372 [details]
Comment 2 Xan Lopez 2013-05-03 08:38:54 PDT
Comment on attachment 200372 [details]

Hrm... I'm seeing some odd crashes in WTF now, but not sure if this is related to this patch. Removing r? while I figure it out.
Comment 3 Xan Lopez 2013-05-03 09:44:02 PDT
So yeah, with this patch I can actually start the browser, but it causes strange crashes inside WTF. I guess there's a more complicated bug here somehow.

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7290845 in WebCore::RegularExpression::RegularExpression(WTF::String const&, WTF::TextCaseSensitivity, WebCore::MultilineMode)
    () from /home/xan/gnome/lib64/libwebkit2gtk-3.0.so.0
(gdb) bt
#0  0x00007ffff7290845 in WebCore::RegularExpression::RegularExpression(WTF::String const&, WTF::TextCaseSensitivity, WebCore::MultilineMode) () from /home/xan/gnome/lib64/libwebkit2gtk-3.0.so.0
#1  0x00007ffff671bb29 in WebCore::XMLMIMETypeRegExp::XMLMIMETypeRegExp() () from /home/xan/gnome/lib64/libwebkit2gtk-3.0.so.0
#2  0x00007ffff729c5b8 in WebCore::ThreadGlobalData::ThreadGlobalData() () from /home/xan/gnome/lib64/libwebkit2gtk-3.0.so.0
#3  0x00007ffff729f8ec in WebCore::TimerBase::setNextFireTime(double) () from /home/xan/gnome/lib64/libwebkit2gtk-3.0.so.0
#4  0x00007ffff6a76bb9 in WebCore::IconDatabase::performScheduleOrDeferSyncTimer() () from /home/xan/gnome/lib64/libwebkit2gtk-3.0.so.0
#5  0x00007ffff7669cd3 in WTF::dispatchFunctionsFromMainThread() () from /home/xan/gnome/lib64/libwebkit2gtk-3.0.so.0
#6  0x00007ffff767fc89 in WTF::timeoutFired(void*) () from /home/xan/gnome/lib64/libwebkit2gtk-3.0.so.0
#7  0x00007ffff497d14a in g_timeout_dispatch (source=0x8f2b70, callback=0x7ffff767fc80 <WTF::timeoutFired(void*)>, user_data=0x0)
    at gmain.c:4417
#8  0x00007ffff497b3ed in g_main_dispatch (context=0x71dd20) at gmain.c:3058
#9  0x00007ffff497c152 in g_main_context_dispatch (context=0x71dd20) at gmain.c:3634
#10 0x00007ffff497c342 in g_main_context_iterate (context=0x71dd20, block=1, dispatch=1, self=0x75f2d0) at gmain.c:3705
#11 0x00007ffff497c406 in g_main_context_iteration (context=0x71dd20, may_block=1) at gmain.c:3766
#12 0x00007ffff4b96961 in g_application_run (application=0x8e5180, argc=1, argv=0x7fffffffd8e8) at gapplication.c:1624
#13 0x000000000042f738 in main (argc=1, argv=0x7fffffffd8e8) at ../../src/ephy-main.c:472
Comment 4 Xan Lopez 2013-05-03 11:39:16 PDT
So the story here was that our trunk is using older version numbers than the stable branch, so the wrong jsc library was being used at runtime. The way we steal all the symbols in WTF through jsc is still kinda broken, but I guess there's not a lot we can do. Closing.