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