plans with libmerged

Matúš Kukan matus.kukan at gmail.com
Thu Apr 11 07:58:33 PDT 2013


Hi,

On 10 April 2013 15:18, Michael Meeks <michael.meeks at suse.com> wrote:
>
> On Wed, 2013-04-10 at 09:04 +0200, Stephan Bergmann wrote:
>> An alternative (for other platforms too) might be to have the various
>> URE interface libraries (sal etc.) be shallow wrappers that link against
>> libmerged and just re-export their part (depending on how elegantly
>> different architectures allow such re-exporting).
>
>         Right - that's a good plan indeed; though I suspect that for Mac+Linux
> the symlink idea is rather simpler practically [ not certain that it's
> easy to safely re-export the same symbol you're implementing under an
> ELF model ].

Well, I'm not there yet (and don't want to be if possible ;-))
I've just created another 'merged' library: urelibs, merging only ure
libraries..
and I could leave public ones out - that should work I hope.

For now I merge also sal, salhelper, cppu, cppuhelper because I just
want to see how it helps.
But it's not in libmerged, it's another library, for details see
<http://cgit.freedesktop.org/libreoffice/core/commit/?id=3fdb77f0827d374a7fa2f1e232920b6174d6b44b>
"add new urelibs library merging some libraries from ure/lib/"

What is encouraging, is that just switching to libmerged as it was on
April 9 helps to save ~20% of startup time on Raspbian.
Both when measuring with time and profiling with callgrind.
I am currently profiling build with urelibs - should help a little more.
I will also generate list of 'commonly used for startup' libraries once more.

But still there are libs, which should go into libmerged, it just does not work.
(it was not possible to add them sooner because build tools depend on
them - now we link the object files twice.)
Currently adding comphelper (you need to add tl first but that seems
to be fine) causes:

==5414== Process terminating with default action of signal 11
(SIGSEGV): dumping core
==5414==  Access not within mapped region at address 0x15DA0538
==5414==    at 0x81E3C2B: SvxAutoCorrCfg::~SvxAutoCorrCfg() (in
/home/opensuse/git/libo/solver/unxlngx6.pro/lib/libmergedlo.so)
==5414==    by 0x5D28F60: __run_exit_handlers (in /lib64/libc-2.17.so)
==5414==    by 0x5D28FE4: exit (in /lib64/libc-2.17.so)
==5414==    by 0x5D12A1B: (below main) (in /lib64/libc-2.17.so)

when executing CppunitTest_sw_uwriter - only this single unit test fails :-(
No idea what to do with that.

Thanks,

Matus


More information about the LibreOffice mailing list