[PATCH] Fix for sw_filter_test crash due to ambiguous FieldEntry destructor

Michael Stahl mstahl at redhat.com
Mon Jul 23 07:40:08 PDT 2012


On 22/07/12 11:25, Kristian Rietveld wrote:
> (Please keep me on CC as I am not subscribed to the list)

> During the build, however, the "sw_filters_test" unit test crashes. The 
> crash happens in rtl_string_release from the FieldEntry (the one in 
> sw/source/file/ww8/ww8par.hxx) destructor. The FieldEntry destructor is 
> called through a dyld stub.
> 
> After reading assembly code I figured that the FieldEntry destructor 
> being executed does not match the FieldEntry's fields. What was already 
> suspicious above is that rtl_string_release is being called even though 
> this FieldEntry uses OUStrings.
> 
>  From the assembly code I guess the FieldEntry destructor being executed 
> is actually the one in registry/source/reflwrit.cxx.  So my impression 
> is that the dynamic linker on OS X is simply calling the wrong 
> destructor (the symbols have the same name).

that is really not supposed to happen, we really should build everything
with -fvisibility=hidden on all platforms where unnecessarily exported
symbols cause such problems (guess that means everything but Windows).

on master and libreoffice-3-6, in solenv/gbuild/platform/macosx.mk the
-fvisibility=hidden is inside:

> ifeq ($(HAVE_GCC_VISIBILITY_FEATURE),TRUE)

can you check that that is actually detected properly for your compiler?
and if so, that it's actually on the command line in a "make registry
VERBOSE=t"?
perhaps the check for it is broken somehow.

ah, there is another one, i wonder what that does:

> ifneq ($(HAVE_GCC_VISIBILITY_BROKEN),TRUE)

possibly in this day and age we should strongly consider hard-requiring
visibility support in configure, i.e. reject compilers that can't do it.


More information about the LibreOffice mailing list