Performance samples for LibreOffice ...

Jan Hubicka hubicka at ucw.cz
Wed Sep 10 22:05:24 PDT 2014


> On 10/09/14 07:45, Jan Hubicka wrote:
> 
> > Yep, I am curious too.  I just got my trees updated after vacation so hopefully
> > I will get there soon (for sure libreoffice will trigger few GCC bugs first)
> 
> yes we do have a certain reputation for that...thanks to Miklos now you
> can even get the t-shirt for it:
> 
> http://vmiklos.hu/blog/so-many-bugs.html

:) Lovely
After all I needed to fix only two bugs to get LO build with mainline LTO again.

Anyway those are warning I currently get with ODR type merging.  The first three are
quite puzzling - the type layout differs, but by abstract field so I am unable to print
out any resonable message. This may suggest difference in virtual inheritance or someting like
that (or just plain bug in my code comparing types).  I will dig deeper into it tomorrow.

Most of the later cases seems real.

/aux/hubicka/libreoffice/i18npool/inc/nativenumbersupplier.hxx:33:0: warning: type ‘struct NativeNumberSupplier’ violates one definition rule [-Wodr]
 class NativeNumberSupplier : public cppu::WeakImplHelper2
 ^
/aux/hubicka/libreoffice/50-lto/workdir/UnoApiHeadersTarget/offapi/normal/com/sun/star/i18n/NativeNumberSupplier.hpp:29:0: note: a type with different memory representation is defined in another translation unit
 class NativeNumberSupplier {
 ^
/aux/hubicka/libreoffice/50-lto/workdir/UnoApiHeadersTarget/offapi/normal/com/sun/star/i18n/OrdinalSuffix.hpp:29:0: warning: type ‘struct OrdinalSuffix’ violates one definition rule [-Wodr]
 class OrdinalSuffix {
 ^
/aux/hubicka/libreoffice/i18npool/inc/ordinalsuffix.hxx:28:0: note: a type with different memory representation is defined in another translation unit
 class OrdinalSuffix : public cppu::WeakImplHelper2
 ^
/aux/hubicka/libreoffice/50-lto/workdir/UnoApiHeadersTarget/offapi/normal/com/sun/star/i18n/TextConversion.hpp:29:0: warning: type ‘struct TextConversion’ violates one definition rule [-Wodr]
 class TextConversion {
 ^
/aux/hubicka/libreoffice/i18npool/inc/textconversion.hxx:36:0: note: a type with different memory representation is defined in another translation unit
 class TextConversion: public cppu::WeakImplHelper2
 ^
/aux/hubicka/libreoffice/i18npool/inc/transliteration_Ignore.hxx:36:7: warning: type ‘struct transliteration_Ignore’ violates one definition rule [-Wodr]
 class transliteration_Ignore : public transliteration_commonclass
       ^
/aux/hubicka/libreoffice/i18npool/inc/transliteration_Ignore.hxx:36:7: note: a different type is defined in another translation unit
 class transliteration_Ignore : public transliteration_commonclass
       ^
/aux/hubicka/libreoffice/i18npool/inc/transliteration_Ignore.hxx:74:24: note: the first difference of corresponding definitions is field ‘map’
         const Mapping *map;
                        ^
/aux/hubicka/libreoffice/i18npool/inc/transliteration_Ignore.hxx:74:24: note: a field of same name but different type is defined in another translation unit
         const Mapping *map;
                        ^
/aux/hubicka/libreoffice/include/i18nutil/casefolding.hxx:51:0: note: type ‘const struct Mapping’ should match type ‘const struct Mapping’ but is defined in different namespace  
 struct Mapping
 ^
/aux/hubicka/libreoffice/i18npool/inc/transliteration_Ignore.hxx:32:3: note: the incompatible type is defined here
 } Mapping;
   ^
/aux/hubicka/libreoffice/xmloff/source/core/XMLEmbeddedObjectImportContext.cxx:44:0: warning: type ‘struct XMLServiceMapEntry_Impl’ violates one definition rule [-Wodr]
 struct XMLServiceMapEntry_Impl
 ^
/aux/hubicka/libreoffice/xmloff/source/core/xmlexp.cxx:118:0: note: a different type is defined in another translation unit
 struct XMLServiceMapEntry_Impl
 ^
/aux/hubicka/libreoffice/xmloff/source/core/XMLEmbeddedObjectImportContext.cxx:46:0: note: the first difference of corresponding definitions is field ‘eClass’
     enum XMLTokenEnum eClass;
 ^
/aux/hubicka/libreoffice/xmloff/source/core/xmlexp.cxx:120:0: note: a field with different name is defined in another translation unit
     const sal_Char *sModelService;
 ^
/aux/hubicka/libreoffice/svx/source/form/tabwin.cxx:76:0: warning: type ‘struct ColumnInfo’ violates one definition rule [-Wodr]
 struct ColumnInfo
 ^
/aux/hubicka/libreoffice/xmloff/source/table/XMLTableImport.cxx:54:0: note: a different type is defined in another translation unit
 struct ColumnInfo
 ^
/aux/hubicka/libreoffice/svx/source/form/tabwin.cxx:78:0: note: the first difference of corresponding definitions is field ‘sColumnName’
     OUString sColumnName;
 ^
/aux/hubicka/libreoffice/xmloff/source/table/XMLTableImport.cxx:56:0: note: a field with different name is defined in another translation unit
     OUString msStyleName;
 ^
/aux/hubicka/libreoffice/xmloff/source/text/XMLIndexTemplateContext.hxx:42:0: warning: type of ‘aSvLevelNameTOCMap’ does not match original declaration
 extern const SvXMLEnumMapEntry aSvLevelNameTOCMap[];
 ^
/aux/hubicka/libreoffice/xmloff/source/text/XMLIndexTemplateContext.hxx:42:0: warning: type of ‘aSvLevelNameTOCMap’ does not match original declaration
/aux/hubicka/libreoffice/xmloff/source/text/XMLIndexTemplateContext.cxx:342:0: note: previously declared here
 const SvXMLEnumMapEntry aSvLevelNameTOCMap[] =
 ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/OpenOffice_dat.c:28:5: warning: type of ‘OpenOffice_sent_brk’ does not match original declaration
     OpenOffice_sent_brk[];
     ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/sent_brk.c:10:3: note: previously declared here
 } OpenOffice_sent_brk={ 0.0, {
   ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/OpenOffice_dat.c:27:5: warning: type of ‘OpenOffice_line_brk’ does not match original declaration
     OpenOffice_line_brk[],
     ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/line_brk.c:10:3: note: previously declared here
 } OpenOffice_line_brk={ 0.0, {
   ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/OpenOffice_dat.c:26:5: warning: type of ‘OpenOffice_edit_word_hu_brk’ does not match original declaration
     OpenOffice_edit_word_hu_brk[],
     ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/edit_word_hu_brk.c:10:3: note: previously declared here
 } OpenOffice_edit_word_hu_brk={ 0.0, {
   ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/OpenOffice_dat.c:25:5: warning: type of ‘OpenOffice_edit_word_he_brk’ does not match original declaration
     OpenOffice_edit_word_he_brk[],
     ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/edit_word_he_brk.c:10:3: note: previously declared here
 } OpenOffice_edit_word_he_brk={ 0.0, {
   ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/OpenOffice_dat.c:24:5: warning: type of ‘OpenOffice_edit_word_brk’ does not match original declaration
     OpenOffice_edit_word_brk[],
     ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/edit_word_brk.c:10:3: note: previously declared here
 } OpenOffice_edit_word_brk={ 0.0, {
   ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/OpenOffice_dat.c:23:5: warning: type of ‘OpenOffice_dict_word_prepostdash_brk’ does not match original declaration
     OpenOffice_dict_word_prepostdash_brk[],
     ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/dict_word_prepostdash_brk.c:10:3: note: previously declared here
 } OpenOffice_dict_word_prepostdash_brk={ 0.0, {
   ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/OpenOffice_dat.c:22:5: warning: type of ‘OpenOffice_dict_word_nodash_brk’ does not match original declaration
     OpenOffice_dict_word_nodash_brk[],
     ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/dict_word_nodash_brk.c:10:3: note: previously declared here
 } OpenOffice_dict_word_nodash_brk={ 0.0, {
   ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/OpenOffice_dat.c:21:5: warning: type of ‘OpenOffice_dict_word_hu_brk’ does not match original declaration
     OpenOffice_dict_word_hu_brk[],
     ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/dict_word_hu_brk.c:10:3: note: previously declared here
 } OpenOffice_dict_word_hu_brk={ 0.0, {
   ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/OpenOffice_dat.c:20:5: warning: type of ‘OpenOffice_dict_word_he_brk’ does not match original declaration
     OpenOffice_dict_word_he_brk[],
     ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/dict_word_he_brk.c:10:3: note: previously declared here
 } OpenOffice_dict_word_he_brk={ 0.0, {
   ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/OpenOffice_dat.c:19:5: warning: type of ‘OpenOffice_dict_word_fi_brk’ does not match original declaration
     OpenOffice_dict_word_fi_brk[],
     ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/dict_word_fi_brk.c:10:3: note: previously declared here
 } OpenOffice_dict_word_fi_brk={ 0.0, {
   ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/OpenOffice_dat.c:18:5: warning: type of ‘OpenOffice_dict_word_brk’ does not match original declaration
     OpenOffice_dict_word_brk[],
     ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/dict_word_brk.c:10:3: note: previously declared here
 } OpenOffice_dict_word_brk={ 0.0, {
   ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/OpenOffice_dat.c:17:5: warning: type of ‘OpenOffice_count_word_fi_brk’ does not match original declaration
     OpenOffice_count_word_fi_brk[],
     ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/count_word_fi_brk.c:10:3: note: previously declared here
 } OpenOffice_count_word_fi_brk={ 0.0, {
   ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/OpenOffice_dat.c:16:5: warning: type of ‘OpenOffice_count_word_brk’ does not match original declaration
     OpenOffice_count_word_brk[],
     ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/count_word_brk.c:10:3: note: previously declared here
 } OpenOffice_count_word_brk={ 0.0, {
   ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/OpenOffice_dat.c:15:5: warning: type of ‘OpenOffice_char_in_brk’ does not match original declaration
     OpenOffice_char_in_brk[],
     ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/char_in_brk.c:10:3: note: previously declared here
 } OpenOffice_char_in_brk={ 0.0, {
   ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/OpenOffice_dat.c:14:5: warning: type of ‘OpenOffice_char_brk’ does not match original declaration
     OpenOffice_char_brk[],
     ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/char_brk.c:10:3: note: previously declared here
 } OpenOffice_char_brk={ 0.0, {
   ^
/aux/hubicka/libreoffice/i18npool/source/breakiterator/breakiterator_unicode.cxx:34:0: warning: type of ‘OpenOffice_dat’ does not match original declaration
 extern const char OpenOffice_dat[];
 ^
/aux/hubicka/libreoffice/50-lto/workdir/CustomTarget/i18npool/breakiterator/OpenOffice_dat.c:40:13: note: previously declared here
 } U_EXPORT2 OpenOffice_dat = {
             ^
/aux/hubicka/libreoffice/include/vcl/font.hxx:42:21: warning: type ‘struct Font’ violates one definition rule [-Wodr]
 class VCL_DLLPUBLIC Font
                     ^
/aux/hubicka/libreoffice/50-lto/workdir/UnpackedTarball/libgltf/src/Font.h:15:7: note: a different type is defined in another translation unit
 class Font
       ^
/aux/hubicka/libreoffice/include/vcl/font.hxx:45:25: note: the first difference of corresponding definitions is field ‘mpImplFont’
     Impl_Font*          mpImplFont;
                         ^
/aux/hubicka/libreoffice/50-lto/workdir/UnpackedTarball/libgltf/src/Font.h:34:27: note: a field with different name is defined in another translation unit
  Texture mCharTextures[256];
                           ^
/aux/hubicka/libreoffice/xmloff/source/core/XMLEmbeddedObjectImportContext.cxx:44:8: warning: type ‘struct XMLServiceMapEntry_Impl’ violates one definition rule [-Wodr]
 struct XMLServiceMapEntry_Impl
        ^
/aux/hubicka/libreoffice/xmloff/source/core/xmlexp.cxx:118:8: note: a different type is defined in another translation unit
 struct XMLServiceMapEntry_Impl
        ^
/aux/hubicka/libreoffice/xmloff/source/core/XMLEmbeddedObjectImportContext.cxx:46:23: note: the first difference of corresponding definitions is field ‘eClass’
     enum XMLTokenEnum eClass;
                       ^
/aux/hubicka/libreoffice/xmloff/source/core/xmlexp.cxx:120:21: note: a field with different name is defined in another translation unit
     const sal_Char *sModelService;
                     ^
/aux/hubicka/libreoffice/xmloff/source/text/XMLIndexTemplateContext.hxx:42:0: warning: type of ‘aSvLevelNameTOCMap’ does not match original declaration
 extern const SvXMLEnumMapEntry aSvLevelNameTOCMap[];
 ^
/aux/hubicka/libreoffice/xmloff/source/text/XMLIndexTemplateContext.hxx:42:0: warning: type of ‘aSvLevelNameTOCMap’ does not match original declaration
/aux/hubicka/libreoffice/xmloff/source/text/XMLIndexTemplateContext.cxx:342:25: note: previously declared here
 const SvXMLEnumMapEntry aSvLevelNameTOCMap[] =
                         ^
/aux/hubicka/libreoffice/sc/source/ui/Accessibility/AccessibleDocument.cxx:1387:8: warning: type ‘struct ScVisAreaChanged’ violates one definition rule [-Wodr]
 struct ScVisAreaChanged
        ^
/aux/hubicka/libreoffice/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx:859:0: note: a different type is defined in another translation unit
 struct ScVisAreaChanged
 ^
/aux/hubicka/libreoffice/sc/source/ui/Accessibility/AccessibleDocument.cxx:1389:27: note: the first difference of corresponding definitions is field ‘mpAccDoc’
     ScAccessibleDocument* mpAccDoc;
                           ^
/aux/hubicka/libreoffice/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx:861:39: note: a field with different name is defined in another translation unit
     const ScIAccessibleViewForwarder* mpViewForwarder;
                                       ^
/aux/hubicka/libreoffice/sc/source/ui/vba/vbaaxes.cxx:42:7: warning: type ‘struct EnumWrapper’ violates one definition rule [-Wodr]
 class EnumWrapper : public EnumerationHelper_BASE
       ^
/aux/hubicka/libreoffice/sc/source/ui/vba/vbaformatconditions.cxx:86:7: note: a different type is defined in another translation unit
 class EnumWrapper : public EnumerationHelper_BASE
       ^
/aux/hubicka/libreoffice/sc/source/ui/vba/vbaaxes.cxx:45:19: note: the first difference of corresponding definitions is field ‘nIndex’
         sal_Int32 nIndex;
                   ^
/aux/hubicka/libreoffice/sc/source/ui/vba/vbaformatconditions.cxx:89:40: note: a field with different name is defined in another translation unit
         uno::Reference<excel::XRange > m_xParentRange;
                                        ^


More information about the LibreOffice mailing list