[Libreoffice] Compilation error in svx undefined reference to `XPropertyList::operator delete(void*)'

Michael Meeks michael.meeks at novell.com
Mon Sep 26 01:58:43 PDT 2011


Hi Julien,

On Sun, 2011-09-25 at 01:40 -0700, julien2412 wrote:
> /home/maryline/compile-libreoffice/libo/workdir/unxlngi6/CxxObject/svx/source/tbxctrls/fillctrl.o:
> In function `~XBitmapList':
> /home/maryline/compile-libreoffice/libo/svx/inc/svx/xtable.hxx:469:
> undefined reference to `XPropertyList::operator delete(void*)'
> /home/maryline/compile-libreoffice/libo/svx/inc/svx/xtable.hxx:469:
> undefined reference to `XPropertyList::operator delete(void*)'

	Riight - that is odd / annoying. The idea here is (by hiding new /
delete) that we force people to use the static factory function and thus
not shoot the ref-counting in the foot :-) as a quick hack around just
removing those operators would work, and sorry to break it for you ...

> /usr/bin/ld:
> /home/maryline/compile-libreoffice/libo/workdir/unxlngi6/LinkTarget/Library/libsvxlo.so:
> hidden symbol `XPropertyList::operator delete(void*)' isn't defined

	So - clearly the symbol is in fact defined; and it -should- be defined
in the same module that that destructor is defined in.

> I don't know if a mk file must be changed or if delete operator must be
> implemented. If it's the case, XBitmapList is not the only one, there are
> too for the classes :

	Well - the delete operator is implemented - cf. above.

> In the same time, if there really was something broken with this, all the
> tinderboxes should be red.

	Hah - so, I -think- the problem is that XBitmapList implements it's
destructor in-line, and (somehow) despite this not being called the
linker is trying to link an implementation of it into libsvxlo.so when
the destructor is hidden inside libsvxcorelo.so ;-)

> (hope I don't have to do again a "make clean && make")

	I'll bin the in-lined destructor in the header and that should fix it
for you.

	Thanks for the nice clear report,

	ATB,

		Michael.

-- 
michael.meeks at suse.com  <><, Pseudo Engineer, itinerant idiot



More information about the LibreOffice mailing list