Moving webkit-dev to BCC since this is off-topic for the list. On Jan 10, 2014, at 13:45, Eric Wing <ewmail...@gmail.com> wrote:
> (I tried webkit-help but didn't get any responses, so I thought maybe > this list might be more appropriate for this question. Sorry for the > duplicate if otherwise.) > > I am attempting to build JavaScriptCore for my own embedded > application use. I noticed that Mac and iOS JavaScriptCore have a > dependency on a library called libicucore. > > When I build ICU myself from the , I get a handful of different icu > libraries, but nothing named "core". > > While I can get a working JavaScriptCore built against my ICU > libraries (I need icuuc, icui18n, and icudata), my final binary size > is huge due to the ICU libraries I link in. I tried statically linking > my icu libraries, but the smallest my binary gets is about 30MB per > architecture. When I dynamically link ICU, I can tell that the major > contribution of the bloat is due to the ICU libraries. > > Looking at Apple's icucore binary, it is about 6.5MB for 3 > architectures which is tiny compared to my 3 icu libraries. I'm > speculating that Apple ripped out all the stuff they don't need and > merged in all the parts they do need into the single libicucore. > > Can somebody confirm this is what Apple did, and can somebody tell me > how I can reproduce that? (I did try downloading Apple's 10.9 source > for ICU from MacOSForge, but it built the normal ICU stuff and not > libicucore, nor did I notice any special build options.) Disclaimer: I know very little about ICU, this is just what I found from spending a few minutes looking at their source. If you look at the <http://www.opensource.apple.com/source/ICU/ICU-511.25/> you can see the Makefile used when building ICU. It functions as a wrapper around ICU’s regular build process. I think the key option to shrink the library size is --with-data-packaging=archive. This puts the ICU data tables in a standalone file (/usr/share/icu/icudt51l.dat) rather than embedding them in the library. You'll also find the logic for packaging things up in to a library named libicucore.dylib here. - Mark
_______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-dev