Weird undefined symbol: Reference<XInterface>::operator Reference<XInterface> const&() const

Tor Lillqvist tml at iki.fi
Mon Feb 27 04:20:37 PST 2012


Anybody have a clue what might cause this (in a build for the iOS
simulator, using the llvm-g++ 4.2.1 in Xcode 4.3):

Undefined symbols for architecture i386:
  "com::sun::star::uno::Reference<com::sun::star::uno::XInterface>::operator
com::sun::star::uno::Reference<com::sun::star::uno::XInterface>
const&() const", referenced from:
      non-virtual thunk to
framework::RootItemContainer::createInstanceWithArgumentsAndContext(com::sun::star::uno::Sequence<com::sun::star::uno::Any>
const&, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext>
const&)in libfwilo.a(rootitemcontainer.o)
      non-virtual thunk to
framework::RootItemContainer::createInstanceWithContext(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext>
const&)in libfwilo.a(rootitemcontainer.o)

If I rebuild framework with -fkeep-inline-functions the error goes
away. But surely it shouldn't be necessary to use that option? And
can't using that everywhere cause multiply defined symbols then
instead?

A compiler problem and/or some weird underspecified corner case
relating to inline and templates? Is there something weird or vague in
that cast operator in Reference, or in those
createInstanceWithArgumentsAndContext and createInstanceWithContext
methods in rootitemcontainer.cxx?

--tml


More information about the LibreOffice mailing list