Geeqie version [geeqie --version]: build from git master
Describe the bug
I built with these *FLAGS: -flto=4 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing
I got this error:
FAILED: src/geeqie
x86_64-pc-linux-gnu-g++ -o src/geeqie src/geeqie.p/meson-generated_.._.._po_translators.c.o src/geeqie.p/meson-generated_.._authors_authors.c.o src/geeqie.p/meson-generated_.._icons_icons.c.o src/geeqie.p/meson-generated_.._ui_ui.c.o src/geeqie.p/meson-generated_.._gq-marshal-pragma.c.o src/geeqie.p/advanced-exif.cc.o src/geeqie.p/archives.cc.o src/geeqie.p/bar.cc.o src/geeqie.p/bar-comment.cc.o src/geeqie.p/bar-exif.cc.o src/geeqie.p/bar-gps.cc.o src/geeqie.p/bar-histogram.cc.o src/geeqie.p/bar-keywords.cc.o src/geeqie.p/bar-rating.cc.o src/geeqie.p/bar-sort.cc.o src/geeqie.p/cache.cc.o src/geeqie.p/cache-loader.cc.o src/geeqie.p/cache-maint.cc.o src/geeqie.p/cellrenderericon.cc.o src/geeqie.p/collect.cc.o src/geeqie.p/collect-dlg.cc.o src/geeqie.p/collect-io.cc.o src/geeqie.p/collect-table.cc.o src/geeqie.p/color-man.cc.o src/geeqie.p/compat.cc.o src/geeqie.p/debug.cc.o src/geeqie.p/desktop-file.cc.o src/geeqie.p/dnd.cc.o src/geeqie.p/dupe.cc.o src/geeqie.p/editors.cc.o src/geeqie.p/exif.cc.o src/geeqie.p/exif-common.cc.o src/geeqie.p/exiv2.cc.o src/geeqie.p/filecache.cc.o src/geeqie.p/filedata.cc.o src/geeqie.p/filefilter.cc.o src/geeqie.p/format-canon.cc.o src/geeqie.p/format-fuji.cc.o src/geeqie.p/format-nikon.cc.o src/geeqie.p/format-olympus.cc.o src/geeqie.p/format-raw.cc.o src/geeqie.p/fullscreen.cc.o src/geeqie.p/histogram.cc.o src/geeqie.p/history-list.cc.o src/geeqie.p/image.cc.o src/geeqie.p/image-load.cc.o src/geeqie.p/image-load-collection.cc.o src/geeqie.p/image-load-cr3.cc.o src/geeqie.p/image-load-dds.cc.o src/geeqie.p/image-load-djvu.cc.o src/geeqie.p/image-load-external.cc.o src/geeqie.p/image-load-ffmpegthumbnailer.cc.o src/geeqie.p/image-load-gdk.cc.o src/geeqie.p/image-load-heif.cc.o src/geeqie.p/image-load-j2k.cc.o src/geeqie.p/image-load-jpeg.cc.o src/geeqie.p/image-load-jpegxl.cc.o src/geeqie.p/image-load-libraw.cc.o src/geeqie.p/image-load-pdf.cc.o src/geeqie.p/image-load-psd.cc.o src/geeqie.p/image-load-svgz.cc.o src/geeqie.p/image-load-tiff.cc.o src/geeqie.p/image-load-webp.cc.o src/geeqie.p/image-load-zxscr.cc.o src/geeqie.p/image-overlay.cc.o src/geeqie.p/img-view.cc.o src/geeqie.p/jpeg-parser.cc.o src/geeqie.p/keymap-template.cc.o src/geeqie.p/layout.cc.o src/geeqie.p/layout-config.cc.o src/geeqie.p/layout-image.cc.o src/geeqie.p/layout-util.cc.o src/geeqie.p/logwindow.cc.o src/geeqie.p/lua.cc.o src/geeqie.p/main.cc.o src/geeqie.p/md5-util.cc.o src/geeqie.p/menu.cc.o src/geeqie.p/metadata.cc.o src/geeqie.p/misc.cc.o src/geeqie.p/options.cc.o src/geeqie.p/osd.cc.o src/geeqie.p/pixbuf-renderer.cc.o src/geeqie.p/pixbuf-util.cc.o src/geeqie.p/preferences.cc.o src/geeqie.p/print.cc.o src/geeqie.p/rcfile.cc.o src/geeqie.p/remote.cc.o src/geeqie.p/renderer-tiles.cc.o src/geeqie.p/search-and-run.cc.o src/geeqie.p/search.cc.o src/geeqie.p/secure-save.cc.o src/geeqie.p/shortcuts.cc.o src/geeqie.p/similar.cc.o src/geeqie.p/slideshow.cc.o src/geeqie.p/thumb.cc.o src/geeqie.p/thumb-standard.cc.o src/geeqie.p/toolbar.cc.o src/geeqie.p/trash.cc.o src/geeqie.p/ui-bookmark.cc.o src/geeqie.p/ui-fileops.cc.o src/geeqie.p/ui-help.cc.o src/geeqie.p/ui-menu.cc.o src/geeqie.p/ui-misc.cc.o src/geeqie.p/ui-pathsel.cc.o src/geeqie.p/ui-tabcomp.cc.o src/geeqie.p/ui-tree-edit.cc.o src/geeqie.p/ui-utildlg.cc.o src/geeqie.p/uri-utils.cc.o src/geeqie.p/utilops.cc.o src/geeqie.p/view-dir.cc.o src/geeqie.p/view-dir-list.cc.o src/geeqie.p/view-dir-tree.cc.o src/geeqie.p/window.cc.o src/geeqie.p/pan-view_pan-calendar.cc.o src/geeqie.p/pan-view_pan-folder.cc.o src/geeqie.p/pan-view_pan-grid.cc.o src/geeqie.p/pan-view_pan-item.cc.o src/geeqie.p/pan-view_pan-timeline.cc.o src/geeqie.p/pan-view_pan-util.cc.o src/geeqie.p/pan-view_pan-view.cc.o src/geeqie.p/pan-view_pan-view-filter.cc.o src/geeqie.p/pan-view_pan-view-search.cc.o src/geeqie.p/third-party_whereami.cc.o src/geeqie.p/third-party_zonedetect.cc.o src/geeqie.p/view-file_view-file.cc.o src/geeqie.p/view-file_view-file-icon.cc.o src/geeqie.p/view-file_view-file-list.cc.o -flto -Wl,--as-needed -Wl,--no-undefined -march=native -fstack-protector-all -O2 -pipe -fdiagnostics-color=always -frecord-gcc-switches -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-clash-protection -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -Wformat -Werror=format-security -Wl,-O1 -Wl,--as-needed -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -Wl,--defsym=__gentoo_check_ldflags__=0 -Wl,--start-group /usr/lib64/libgtk-3.so /usr/lib64/libgdk-3.so /usr/lib64/libharfbuzz.so /usr/lib64/libpangocairo-1.0.so /usr/lib64/libpango-1.0.so /usr/lib64/libatk-1.0.so /usr/lib64/libcairo.so /usr/lib64/libcairo-gobject.so /usr/lib64/libgdk_pixbuf-2.0.so /usr/lib64/libgio-2.0.so /usr/lib64/libglib-2.0.so /usr/lib64/libgobject-2.0.so /usr/lib64/libexiv2.so /usr/lib64/libgspell-1.so /usr/lib64/libenchant-2.so /usr/lib64/liblcms2.so /usr/lib64/liblcms2_fast_float.so /usr/lib64/liblcms2_threaded.so /usr/lib64/libjpeg.so /usr/lib64/libwebp.so /usr/lib64/libpoppler-glib.so -pthread /usr/lib64/libtiff.so -Wl,--end-group
../geeqie-9999/src/bar-exif.cc:92:8: error: type ‘struct ConfDialogData’ violates the C++ One Definition Rule [-Werror=odr]
92 | struct ConfDialogData
| ^
../geeqie-9999/src/bar-keywords.cc:156:8: note: a different type is defined in another translation unit
156 | struct ConfDialogData
| ^
../geeqie-9999/src/bar-exif.cc:94:20: note: the first difference of corresponding definitions is field ‘widget’
94 | GtkWidget *widget; /* pane or entry, devidet by presenceof "pane_data" or "entry_data" */
| ^
../geeqie-9999/src/bar-keywords.cc:158:27: note: a field with different name is defined in another translation unit
158 | PaneKeywordsData *pkd;
| ^
../geeqie-9999/src/layout.cc:2259:8: error: type ‘struct LayoutConfig’ violates the C++ One Definition Rule [-Werror=odr]
2259 | struct LayoutConfig
| ^
../geeqie-9999/src/layout-config.cc:46:8: note: a different type is defined in another translation unit
46 | struct LayoutConfig
| ^
../geeqie-9999/src/layout.cc:2261:23: note: the first difference of corresponding definitions is field ‘lw’
2261 | LayoutWindow *lw;
| ^
../geeqie-9999/src/layout-config.cc:48:20: note: a field with different name is defined in another translation unit
48 | GtkWidget *box;
| ^
../geeqie-9999/src/collect-table.cc:2501:8: error: type ‘struct ColumnData’ violates the C++ One Definition Rule [-Werror=odr]
2501 | struct ColumnData
| ^
../geeqie-9999/src/view-file/view-file-icon.cc:2075:8: note: a different type is defined in another translation unit
2075 | struct ColumnData
| ^
../geeqie-9999/src/collect-table.cc:2503:23: note: the first difference of corresponding definitions is field ‘ct’
2503 | CollectTable *ct;
| ^
../geeqie-9999/src/view-file/view-file-icon.cc:2077:19: note: a field with different name is defined in another translation unit
2077 | ViewFile *vf;
| ^
lto1: some warnings being treated as errors
lto-wrapper: fatal error: x86_64-pc-linux-gnu-g++ returned 1 exit status
compilation terminated.
/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status
Setup:
Describe the bug I built with these *FLAGS:
-flto=4 -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing
I got this error:
Error logs or seg. fault files
build.log.gz
Additional context
Originally reported downstream at https://bugs.gentoo.org/924378