[webkit-dev] Exporting symbols (was Re: Common build system (was Re: WebKit Wishes))

Dirk Pranke dpranke at chromium.org
Thu Jan 31 14:45:37 PST 2013

On Thu, Jan 31, 2013 at 9:48 AM, Ryosuke Niwa <rniwa at webkit.org> wrote:
> On Thu, Jan 31, 2013 at 9:43 AM, Alexey Proskuryakov <ap at apple.com> wrote:
>> 31.01.2013, в 0:17, Ryosuke Niwa <rniwa at webkit.org> написал(а):
>>> I did it for WTF and JSC with kevino at .
>>> https://bugs.webkit.org/show_bug.cgi?id=72855
>>> I hope I had had time to extend the work to WebCore, which was my
>>> original goal :-/
>>> I did it through an automation but the tool was so slow and hacky that it
>>> was not capable for large WebCore codebase.
>>> Seeing that the number of exported symbol is about 2700, manual work with
>>> regular expression will also work
>>> if it is OK to do the work incrementally... and if you are patient enough
>>> :-)
>> 2700 is a lot of symbols to export! Perhaps we can reduce the number of
>> exported symbols? For example, we can move more code from WebKit into
>> WebCore to share more code between ports so that the API surface WebCore has
>> to expose will be smaller and more well defined.
>> One thing to keep an eye on with WEBCORE_EXPORT is that it can increase
>> the number of exports for each port, because it would export symbols that
>> are only needed for other ports.

I'm not sure I understand the concern here. Is the idea that some
ports might build WebCore as a DLL (and need exports) and others
wouldn't? Or the idea that the API that is needed to be exported might
vary from port to port in such a way that too many symbols for WebCore
might be exported on some ports?

> Can we make the macro starter and specify ports under which a given symbol
> needs to be exported? e.g. WEBCORE_EXPORT(MAC, QT)

I'm not sure how this helps, but I think that's because of my previous
comment. I could see something like this maybe being needed in my
later scenario (where MAC might need a symbol exported from WebCore
that Qt needed to keep from being exported)?

Is that a hard requirement, or an optimization?

-- Dirk

More information about the webkit-dev mailing list