> 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; ^ _______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice