plans with libmerged

Stephan Bergmann sbergman at redhat.com
Thu Apr 11 08:40:17 PDT 2013


On 04/11/2013 04:58 PM, Matúš Kukan wrote:
> 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.

For any global static objects A and B ending up in libA and libB resp,, 
if libB (directly or indirectly) depends on LibA that enforces that the 
A ctor is called before the B ctor and the A dtor is called after the B 
dtor.  But order becomes unspecified as soon as you place A and B into 
the same library, so I assume something of that nature causes the 
problem for you there.  As always, global static objects are evil.

Stephan


More information about the LibreOffice mailing list