unit test LayerTabBar, now linker problem

Regina Henschel rb.henschel at t-online.de
Mon Oct 15 12:56:43 UTC 2018


Hallo Michael,

Michael Stahl schrieb am 14-Oct-18 um 13:49:
> On 13/10/2018 21:04, Regina Henschel wrote:
>> Hi all,
>>
>> the patch in https://gerrit.libreoffice.org/61545 works fine on my PC,
>> but I get an error message from Jenkins
>>
>> Build Failed
>>
>> https://ci.libreoffice.org/job/gerrit_master/16732/ : FAILURE
>>
>> linker cannot find typeinfo for sd::GraphicViewShell (
>> https://ci.libreoffice.org/job/gerrit_linux_gcc_release/17086/ )
>>
>> What is wrong there?
>
> apparently GCC can't find the type information for GraphicViewShell
> because it isn't exported from the shared library "sd".
>
> it is needed because of dynamic_cast<sd::GraphicViewShell*> in the test.
>
> you could use SAL_DLLPUBLIC_RTTI on GraphicViewShell, which will export
> just enough so that dynamic_cast and type_info works, or use
> SD_DLLPUBLIC on it, which will make all its member functions available
> as well.

Both do not work, SD_DLLPUBLIC does not compile here, and 
SAL_DLLPUBLIC_RTTI fails too, see Jenkins for patch set 5.
>
>> What do I need to do on my PC (Windows 10, 64bit) to catch it?
>
> probably the issue doesn't happen with MSVC because it implements
> dynamic_cast differently, so unless you want to set up a Linux VM,
> you'll have to rely on Jenkins...

I will setup a Linux VM to test locally. But I have still no idea, what 
to do. MSVC does even allow a dynamic_cast to <sd::DrawViewShell*> 
without adding exports and detects, that it is actually a 
GraphicViewShell. The current state of 
https://gerrit.libreoffice.org/61545 works here locally.

The "load"-method in misc-tests.cxx has the line "sd::ViewShell 
*pViewShell = xDocSh->GetViewShell();". That has no problems, but I 
cannot use it, because sd::ViewShell has no LayerTabBar.

Kind regards
Regina


More information about the LibreOffice mailing list