[Libreoffice] bug in vcl make files?

Stephan Bergmann stephan.bergmann.secondary at googlemail.com
Thu Sep 1 12:26:15 PDT 2011


On Sep 1, 2011, at 3:47 PM, Matúš Kukan wrote:
> On 1 September 2011 15:14, Jenei Gábor <jengab at elte.hu> wrote:
>> Hi all,
>> 
>> As I tried to compile vcl module with raised dbglevel I found out the
>> following error at linking:
>> 
>> 
>> /home/LOff/libo/workdir/unxlngi6.pro/CxxObject/vcl/unx/headless/svpgdi.o: In
>> function `dbgOut(boost::shared_ptr<basebmp::BitmapDevice> const&)':
>> svpgdi.cxx:(.text._Z6dbgOutRKN5boost10shared_ptrIN7basebmp12BitmapDeviceEEE[dbgOut(boost::shared_ptr<basebmp::BitmapDevice>
>> const&)]+0x13a): undefined reference to
>> `basebmp::debugDump(boost::shared_ptr<basebmp::BitmapDevice> const&,
>> std::basic_ostream<char, std::char_traits<char> >&)'
>> collect2: ld returned 1 exit status
>> make: ***
>> [/home/LOff/libo/workdir/unxlngi6.pro/LinkTarget/Library/libvclplug_svplo.so]
>> Error 1
>> 
>> As I saw in cpp code this should be ok, so probably basebmp debug.cxx is not
>> marked for linking in the project. Could someone look at this issue who
>> knows make files?
>> 
> That's not about makefiles. debugDump() is not marked for exporting,
> you can do this in cxx file with SAL_DLLPUBLIC_EXPORT
> or in hxx files. But in hxx you need to use library specific macro defined as in
> http://opengrok.libreoffice.org/xref/core/basebmp/inc/basebmp/bitmapdevice.hxx#42
> It's more complicated because of error in windows compilers, I think.
> 
> I have pushed this one. (
> http://cgit.freedesktop.org/libreoffice/core/commit/?id=e21822008dff0c618e8947d7343bc70d51d47ec3
> )

You cannot do it that way -- it will not work on Windows.  See <http://wiki.services.openoffice.org/wiki/Symbol_Visibility> for details (in short, you need the BASEBMP_DLLPUBLIC/BASEBMP_DLLIMPLEMENTATION stuff in the header file if you want to be able to link against the function on Windows).

Will try to remember to prepare a proper patch tomorrow, unless someone beats me to it…

-Stephan


More information about the LibreOffice mailing list