Are we using SimpleReferenceObject correctly?

Michael Stahl mstahl at redhat.com
Mon Jan 28 05:22:55 PST 2013


On 27/01/13 22:55, Henrik /KaarPoSoft wrote:
> Dear all,
> 
> As described in the mailing-list-thread
> Issues building LibreOffice 4.0.0.1
> http://lists.freedesktop.org/archives/libreoffice/2013-January/044838.html
> I am trying to build and package LibreOffice 4.0.0.* for KaarPux
> http://kaarpux.kaarposoft.dk/
> 
> I am starting a new mailing-list thread here to try to address
> one issue at a time.
> 
> With LibreOffice 4.0.0.2, Stephans patch
> http://cgit.freedesktop.org/libreoffice/core/commit/?id=d71e8fb17bd008751909ef2fabc6ff4f1e2db187
> no other pathes and the configuration attached as "config.txt"
> building is now stuck at
> [build LNK] Library/libmysqllo.so
> with
> undefined reference to 'typeinfo for salhelper::SimpleReferenceObject'

it seems that typeinfo is hidden in the salhelper library, the lines are
explicitly commented out (salhelper/source/gcc3.map):

    # _ZTIN9salhelper21SimpleReferenceObjectE;
    # _ZTSN9salhelper21SimpleReferenceObjectE;

on the other hand the wildcard at the beginning should match these:

   _ZTI*; _ZTS*; # weak RTTI symbols for C++ exceptions

indeed it is exported here:

> > nm --defined-only --extern-only solver/unxlngx6/lib/libuno_salhelpergcc3.so.3 | grep _ZTI | grep SimpleReferenceObject
> 0000000000208ac0 V _ZTIN9salhelper21SimpleReferenceObjectE

but the mysql library does not actually use it here:

> > nm solver/unxlngx6/lib/libmysqllo.so | grep _ZTI | grep SimpleReferenceObject

despite some objects from that library including that FValue.hxx:

> grep -r FValue.hxx workdir/unxlngx6/Dep/LinkTarget/Library/libmysqllo.so.d 
>  /master/solver/unxlngx6/inc/connectivity/FValue.hxx \
> /master/solver/unxlngx6/inc/connectivity/FValue.hxx :
>  /master/solver/unxlngx6/inc/connectivity/FValue.hxx \
>  /master/solver/unxlngx6/inc/connectivity/FValue.hxx \
>  /master/solver/unxlngx6/inc/connectivity/FValue.hxx \
>  /master/solver/unxlngx6/inc/connectivity/FValue.hxx \

so the difference seems to be that your gcc does generate typeinfo and
whatnot for a class that is not actually used.





More information about the LibreOffice mailing list