CMake doesn't automatically add --whole-archive when linking convenience libraries, so we need to add it to the linker command line manually. Without the flag, the linker will trim unused symbols from the final shared object.
An example of this issue for me is that after linking, $ objdump -T lib/libwebkitgtk-3.0.so | grep webkit_dom_css_value_get_type does not show any output. With this change, I see: 0000000001fdefc0 g DF .text 0000000000000090 Base webkit_dom_css_value_get_type This change may seem a bit mysterious, but I've confirmed that libtool (which isn't used in the CMake build) does this as well.
Created attachment 220037 [details] Patch
Comment on attachment 220037 [details] Patch Clearing flags on attachment: 220037 Committed r161121: <http://trac.webkit.org/changeset/161121>
All reviewed patches have been landed. Closing bug.