Inadvertent cppuhelper ABI breakage in 4.0, 4.1
Stephan Bergmann
sbergman at redhat.com
Tue Oct 1 01:31:47 PDT 2013
Just noticed that due to errors in cppuhelper/source/compat.cxx we
inadvertently become backwards incompatible in the ABI of the cppuhelper
dynamic library in LibreOffice 4.0 and 4.1. However, this only affects
symbols representing deprecated, unused C++ functions that we
deliberately removed and for which we left aborting stubs in
cppuhelper/source/compat.cxx (attempting to not deliberately break the ABI);
> $ nm -D --def lo-3.6/core/solver/unxlngx6/lib/libuno_cppuhelpergcc3.so.3 | grep -vw V | cut -d' ' -f2- | LC_ALL=C sort > syms.3.6
> $ nm -D --def lo-4.0/core/solver/unxlngx6/lib/libuno_cppuhelpergcc3.so.3 | grep -vw V | cut -d' ' -f2- | LC_ALL=C sort > syms.4.0
> $ nm -D --def lo-4.1/core/solver/unxlngx6/lib/libuno_cppuhelpergcc3.so.3 | grep -vw V | cut -d' ' -f2- | LC_ALL=C sort > syms.4.1
> $ nm -D --def lo/core/instdir/unxlngx6/ure/lib/libuno_cppuhelpergcc3.so.3 | grep -vw V | cut -d' ' -f2- | LC_ALL=C sort > syms.4.2
> $ diff syms.3.6 syms.4.0 | grep '<'
> < T _ZN4cppu31createStandardClassWithSequenceERKN3com3sun4star3uno9ReferenceINS2_4lang20XMultiServiceFactoryEEERKN3rtl8OUStringERKNS4_INS2_10reflection9XIdlClassEEERKNS3_8SequenceISB_EE
> $ diff syms.3.6 syms.4.1 | grep '<'
> < T _ZN4cppu20createNestedRegistryERKN3rtl8OUStringE
> < T _ZN4cppu20createSimpleRegistryERKN3rtl8OUStringE
> < T _ZN4cppu28createRegistryServiceFactoryERKN3rtl8OUStringES3_hS3_
> < T _ZN4cppu31createStandardClassWithSequenceERKN3com3sun4star3uno9ReferenceINS2_4lang20XMultiServiceFactoryEEERKN3rtl8OUStringERKNS4_INS2_10reflection9XIdlClassEEERKNS3_8SequenceISB_EE
> < T _ZN4cppu33bootstrap_InitialComponentContextERKN3com3sun4star3uno9ReferenceINS2_8registry15XSimpleRegistryEEERKN3rtl8OUStringE
> $ diff syms.3.6 syms.4.2 | grep '<'
> $
In a sense, it is a good thing that apparently nobody else noticed this. ;)
I fixed that now on master towards LibreOffice 4.2 with
<http://cgit.freedesktop.org/libreoffice/core/commit/?id=69f1846f4095a9dc607a0e568980d8625d657c94>
"All the content of cppuhelper/source/compat.cxx must be in namespace
cppu" and requested backports to libreoffice-4-0
(<https://gerrit.libreoffice.org/#/c/6098/>) and libreoffice-4-1
(<https://gerrit.libreoffice.org/#/c/6097/>) branches.
Stephan
More information about the LibreOffice
mailing list