Bug 80683 - [EFL] Can't run layout test without SHARED_CORE=ON
Summary: [EFL] Can't run layout test without SHARED_CORE=ON
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit EFL (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on: 135884
Blocks:
  Show dependency treegraph
 
Reported: 2012-03-09 00:25 PST by Gyuyoung Kim
Modified: 2014-08-24 22:48 PDT (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Gyuyoung Kim 2012-03-09 00:25:27 PST
EFL DRT is only able to run layout test with enabling SHARED_CORE option. I'm suspecting that this problem is because EFL DRT uses WebCore, WTF classes directly.

For example, there are some codes in DumpRenderTree/efl.

  WebCore::KURL baseURL(WebCore::KURL(), String::fromUTF8(ewk_frame_uri_get(browser->mainFrame())));
  WebCore::CaseInsensitive;
  WebCore::FindOptions
  WTF::codePointCompare
  ...


If this is true, I think we need to change above codes with primitive data or public APIs. If anyone know other reasons or solutions related to this problem, please let me know.
Comment 1 Raphael Kubo da Costa (:rakuco) 2012-03-09 05:58:13 PST
The proposed solution does not scale and is a work-around for the problem. The problem's that with SHARED_CORE=OFF all the symbols are linked into a single .so, which is then has most of them stripped via eflsymbols.filter.

I haven't had time to think of a proper fix which doesn't involve editing maintaining a large symbol map file like the GTK+ port (among others) do.
Comment 2 Gyuyoung Kim 2012-03-11 23:06:55 PDT
>> The proposed solution does not scale and is a work-around for the problem.

I don't understand why it is work-around solution. I think DumpRenderTree doesn't need to use WebKit classes related to util(e.g. String, KURL, Vector) except for essential classes. In my opinion, we need to change WebKit util classes with standard library or primitive data type.

Then, size of symbol table maintained by us is more smaller than now.
Comment 3 Raphael Kubo da Costa (:rakuco) 2012-03-12 07:46:02 PDT
(In reply to comment #2)
> >> The proposed solution does not scale and is a work-around for the problem.
> 
> I don't understand why it is work-around solution. I think DumpRenderTree doesn't need to use WebKit classes related to util(e.g. String, KURL, Vector) except for essential classes. In my opinion, we need to change WebKit util classes with standard library or primitive data type.

Classifying what is considered "WebKit util" is subjective (what would you use instead of KURL, for example?), and in the end you'll have to convert to those types anyway. Adding a lot of new one-line functions whose sole purpose is to serve as wrappers around WebCore calls doesn't sound very good (and in the end these symbols will need to be exported too).

Another option we can consider is linking libewebkit.so twice -- once for the final installation stripping as many symbols as we can, and then for DRT without filtering any symbols. The downside of this approach is that the way the library is linked may differ more and more over time.
Comment 4 Gyuyoung Kim 2014-08-24 22:48:18 PDT
By adding DEVELOPER_MODE, EFL port can run layout test without SHARED_CORE=ON at the moment. So close this bug.

http://trac.webkit.org/changeset/172894