[Webkit-unassigned] [Bug 144736] REGRESSION(r182032): [GTK] Production build is broken after r182032

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu May 7 08:47:33 PDT 2015


https://bugs.webkit.org/show_bug.cgi?id=144736

--- Comment #3 from Carlos Garcia Campos <cgarcia at igalia.com> ---
(In reply to comment #2)
> Comment on attachment 252583 [details]
> Patch
> 
> Hrm. I'm not sure I understand the patch. Usually in CMake if sources are
> common among all ports we just call them Whatever_SOURCES and then simply
> append platform-particular sources to the list. How does deviating from that
> fix the problem?

As usual I didn't explain it correctly in the summary.

a) Before r182032:

 - There's no NetworkProcess_SOURCES in CMakeLists.txt
 - Common network process sources are added directly to WebKit2_SOURCES
 - PlatformGTK.cmake adds platform specific network process sources to WebKit2_SOURCES and NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp to NetworkProcess_SOURCES
 - CMakeLists.txt builds network process using NetworkProcess_SOURCES

b) After r182032:

 - CMakeLists.txt defines NetworkProcess_SOURCES with common network process sources.
 - NetworkProcess_SOURCES are added to WebKit2_SOURCES
 - PlatformGTK.cmake adds platform specific network process sources to WebKit2_SOURCES and NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp to NetworkProcess_SOURCES
 - CMakeLists.txt builds network process using NetworkProcess_SOURCES

c) With attached patch:

 - CMakeLists.txt defines NetworkProcess_COMMON_SOURCES with common network process sources.
 - NetworkProcess_COMMON_SOURCES are added to WebKit2_SOURCES
 - PlatformGTK.cmake adds platform specific network process sources to WebKit2_SOURCES and NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp to NetworkProcess_SOURCES
 - CMakeLists.txt builds network process using NetworkProcess_SOURCES

So, in b) common network process sources are built in libwebkit2gtk.so and WebKitNetworkProcess, which causes linking issues because common network process sources use symbols that are hidden to WebKitNetworkProcess. We build all sources in the lib and link all our binaries to the shared lib. Only the main entry points are built directly in the binaries, and WebProcessMainUnix, NetworkProcessMainUnix and PluginProcessMainUnix are the only private symbols exposed to the binaries.

With the patch, we only build the common network process sources in the library, and not in the binary. I simply renamed the variable to keep the compatibility with mac, I have no idea why network process sources were moved and built twice.

Hope it's clear now.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20150507/55d5ca1b/attachment-0001.html>


More information about the webkit-unassigned mailing list