When building muse-3.0.2 with gcc8, the build failed due to glibmm-2.4/glibmm.h header containing invalid code https://koji.fedoraproject.org/koji/taskinfo?taskID=24606627 In file included from /usr/include/glibmm-2.4/glibmm.h:90, from /usr/include/gtkmm-2.4/gtkmm/stockid.h:26, from /usr/include/gtkmm-2.4/gtkmm/iconset.h:35, from /usr/include/gtkmm-2.4/gtkmm/style.h:46, from /usr/include/gtkmm-2.4/gtkmm/rc.h:31, from /usr/include/gtkmm-2.4/gtkmm/widget.h:48, from /usr/include/gtkmm-2.4/gtkmm/container.h:30, from /usr/include/gtkmm-2.4/gtkmm/bin.h:31, from /usr/include/gtkmm-2.4/gtkmm/window.h:33, from /builddir/build/BUILD/muse-3.0.2/muse/lv2Gtk2Support/lv2Gtk2Support.cpp:6: /usr/include/glibmm-2.4/glibmm/threads.h: In member function 'GPrivate* Glib::Threads::Private<T>::gobj()': /usr/include/glibmm-2.4/glibmm/threads.h:660:29: error: cannot convert 'GPrivate' {aka '_GPrivate'} to 'GPrivate*' {aka '_GPrivate*'} in return GPrivate* gobj() { return gobject_; } See for reference: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83165 If there is a way to file this bug upstream please let me know.
I found that the following upstream commit removes "the deprecated threads API" https://github.com/GNOME/glibmm/commit/db75f338fb1 It is an API breaking change. Should we backport this change downstream in rawhide?
It looks like a typo (a missing &). The other 4 gobj() methods say "return &gobject": $ grep 'gobj() {' /usr/include/glibmm-2.4/glibmm/threads.h GMutex* gobj() { return &gobject_; } GRecMutex* gobj() { return &gobject_; } GRWLock* gobj() { return &gobject_; } GCond* gobj() { return &gobject_; } GPrivate* gobj() { return gobject_; }
Thanks, should be fixed in glibmm24-2.54.1-2.fc28 that changes it to "return &gobject_"
Thanks. Makes me wonder why it didn't fail before.