On 17 May 2012 14:56, David Tardon <dtardon@redhat.com> wrote:
On Thu, 2012-05-17 at 12:22 +0300, Tor Lillqvist wrote:libraries into fewer. There is an option for that already, --enable-mergelibs, that merges quite a large number of them into one, libmergedlo.so. This works only for libraries in gbuildified modules, built in tail_build....Anyway, this indeed has helped a lot. But not enough. I am not sure if the number of libraries merged this way can be easily increased much at this stage of gbuildification.
I don't know what is much but it can be easily increased I think. At least conditionally for Android. Originally I understood we want to merge libraries which are "always used". I have a year old list of libraries (attached) where I also mark the status of modules. It was created by starting ./soffice --calc ./soffice --writer ... 5 different runs. '5 ucpgvfs1.uno.so -> ucb <- GNU <- TAIL' says that the library was loaded 5 times (always) and is from tail_build's module ucb. But currently we are merging also fwl and fwm which are not used at the start of Libreoffice. I think we can merge these only for Android and also add more small component libs like fileacc. Attached patch. The simple rules for adding: - library needs to be from tail_build - It must not create circular dependencies because of linking chains
All these modules are candidates for adding into tail_build (adding of connectivity immediately allows adding of other modules: svl, sot, unixODBC). And I think there will be a couple of other candidates after these three branches are all merged into master.
shell/, unotools/. (Well, we need to move crashrep/ behind tail_build) Next blocker would be pyuno, blocking sax. Actually I have created patch based on feature/gbuild_conversions which adds fsstorage, svl, sot and vcl to libmerged. I am waiting for the merge. But vcl is big, if there are problems with linking.. Best, Matus
5 ucpgvfs1.uno.so -> ucb <- GNU <- TAIL 5 stocservices.uno.so -> stoc <- GNU 5 localebe1.uno.so -> shell <- GNU <- TAIL 5 libxolo.so -> xmloff <- GNU <- TAIL 5 libxmlreader.so -> xmlreader <- GNU 5 libxml2.so.2 -> libxml2 <- EXT 5 libxcrlo.so -> xmlscript <- GNU <- TAIL 5 libvclplug_gtklo.so -> vcl <- GNU <- TAIL 5 libvclplug_genlo.so -> vcl <- GNU <- TAIL 5 libvcllo.so -> vcl <- GNU <- TAIL 5 libuuilo.so -> uui <- GNU <- TAIL 5 libutllo.so -> unotools <- GNU 5 libuno_sal.so.3 -> sal <- GNU 5 libuno_salhelpergcc3.so.3 -> salhelper <- GNU 5 libuno_cppu.so.3 -> cppu <- GNU 5 libuno_cppuhelpergcc3.so.3 -> cppuhelper <- GNU 5 libucpfile1.so -> ucb <- GNU <- TAIL 5 libucbhelper4gcc3.so -> ucbhelper <- GNU 5 libucb1.so -> ucb <- GNU <- TAIL 5 libtllo.so -> tools <- GNU 5 libtklo.so -> toolkit <- GNU <- TAIL 5 libsvxlo.so -> svx <- GNU <- TAIL 5 libsvxcorelo.so -> svx <- GNU <- TAIL 5 libsvtlo.so -> svtools <- GNU <- TAIL 5 libsvllo.so -> svl <- GNU <- TAIL 5 libstore.so.3 -> store <- GNU 5 libstdc++.so.6 -> external <- EXT 5 libspllo.so -> desktop <- GNU <- TAIL 5 libsotlo.so -> sot <- GNU <- TAIL 5 libsofficeapp.so -> desktop <- GNU <- TAIL 5 libsfxlo.so -> sfx2 <- GNU <- TAIL 5 libsblo.so -> basic <- GNU <- TAIL 5 libsaxlo.so -> sax <- GNU 5 libreg.so.3 -> registry <- GNU 5 libpixman-1.so.0 -> cairo <- EXT 5 libpackage2.so -> package <- GNU <- TAIL 5 liblocaledata_en.so -> i18npool <- GNU 5 liblnglo.so -> linguistic <- GNU <- TAIL 5 libjvmfwk.so.3 -> jvmfwk <- GNU 5 libjvmaccessgcc3.so.3 -> jvmaccess <- GNU 5 libicuuc.so.44 -> icu <- EXT 5 libicule.so.44 -> icu <- EXT 5 libicui18n.so.44 -> icu <- EXT 5 libi18nutilgcc3.so -> i18nutil <- GNU 5 libi18npaperlo.so -> i18npool <- GNU 5 libi18nisolang1gcc3.so -> i18npool <- GNU 5 libgcc_s.so.1 -> external <- EXT 5 libgcc3_uno.so -> bridges 5 libfwklo.so -> framework <- GNU <- TAIL 5 libfwilo.so -> framework <- GNU <- TAIL 5 libfwelo.so -> framework <- GNU <- TAIL 5 libfilterconfig1.so -> filter <- GNU <- TAIL 5 libeditenglo.so -> editeng <- GNU <- TAIL 5 libdrawinglayerlo.so -> drawinglayer <- GNU <- TAIL 5 libdesktop_detectorlo.so -> vcl <- GNU <- TAIL 5 libdeploymentmisclo.so -> desktop <- GNU <- TAIL 5 libdb-4.7.so -> berkeleydb <- EXT 5 libcppcanvaslo.so -> cppcanvas <- GNU <- TAIL 5 libcomphelpgcc3.so -> comphelper <- GNU 5 libcanvastoolslo.so -> canvas <- GNU <- TAIL 5 libcairo.so.2 -> cairo <- EXT 5 libbasegfxlo.so -> basegfx <- GNU 5 libavmedialo.so -> avmedia <- GNU <- TAIL 5 i18npool.uno.so -> i18npool <- GNU 5 gconfbe1.uno.so -> shell <- GNU <- TAIL 5 fsstorage.uno.so -> svl <- GNU <- TAIL 5 desktopbe1.uno.so -> shell <- GNU <- TAIL 5 configmgr.uno.so -> configmgr <- GNU <- TAIL 5 bootstrap.uno.so -> stoc <- GNU ---------------------------------------------------------------------------- 4 sax.uno.so -> sax <- GNU 4 libmsfilterlo.so -> filter <- GNU <- TAIL 3 ucpexpand1.uno.so -> ucb <- GNU <- TAIL 3 reflection.uno.so -> stoc <- GNU 3 libxstor.so -> package <- GNU <- TAIL 3 libxslt.so.1 -> libxslt <- EXT 3 libunoxmllo.so -> unoxml <- GNU <- TAIL 3 libmcnttype.so -> dtrans <- GNU <- TAIL 3 libhelplinkerlo.so -> l10ntools <- GNU 3 libfileacc.so -> fileaccess <- GNU <- TAIL 3 introspection.uno.so -> stoc <- GNU 3 deploymentlo.uno.so -> desktop <- GNU <- TAIL 2 libvbahelperlo.so -> vbahelper <- GNU <- TAIL 2 libsdlo.so -> sd <- GNU <- TAIL 2 libooxlo.so -> oox <- GNU <- TAIL 1 libswlo.so -> sw <- GNU <- TAIL 1 libswdlo.so -> sw <- GNU <- TAIL 1 libspelllo.so -> lingucomponent <- GNU <- TAIL 1 libsduilo.so -> sd <- GNU <- TAIL 1 libscnlo.so -> extensions <- GNU <- TAIL 1 libsclo.so -> sc <- GNU <- TAIL 1 liblnthlo.so -> lingucomponent <- GNU <- TAIL 1 libhyphenlo.so -> lingucomponent <- GNU <- TAIL 1 libfwllo.so -> framework <- GNU <- TAIL 1 libforuilo.so -> formula <- GNU <- TAIL 1 libforlo.so -> formula <- GNU <- TAIL 1 libdbulo.so -> dbaccess <- GNU <- TAIL 1 libdbtoolslo.so -> connectivity <- GNU <- TAIL 1 libdbaxmllo.so -> dbaccess <- GNU <- TAIL 1 libdbalo.so -> dbaccess <- GNU <- TAIL 1 libanimcore.so -> animations <- GNU <- TAIL
Attachment:
0001-merge-more-libraries-for-android.patch
Description: Binary data