When building x11-libs/gtk+-2.24.31-r1 with dev-libs/glib-2.54.3-r4::gnome linking fails with: /bin/sh ../libtool --tag=CC --mode=link x86_64-pc-linux-gnu-gcc -m32 -pipe -O2 -march=znver1 -Wall -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -o gtk-query-immodules-2.0 queryimmodules.o libgtk-x11-2.0.la ../gdk/libgdk-x11-2.0.la -L/usr/lib -lpangocairo-1.0 -lX11 -lXcomposite -lXdamage -lXfixes -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype -lm -L/usr/lib -Wl,--export-dynamic -lgmodule-2.0 -pthread -lglib-2.0 libtool: link: x86_64-pc-linux-gnu-gcc -m32 -pipe -O2 -march=znver1 -Wall -Wl,-O1 -Wl,--hash-style=gnu -o .libs/gtk-query-immodules-2.0 queryimmodules.o -Wl,--export-dynamic -pthread -Wl,--as-needed ./.libs/libgtk-x11-2.0.so -L/usr/lib /var/tmp/portage/x11-libs/gtk+-2.24.31-r1/work/gtk+-2.24.31-abi_x86_32.x86/gdk/.libs/libgdk-x11-2.0.so ../gdk/.libs/libgdk-x11-2.0.so -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXext -lpangocairo-1.0 -lX11 -lXcomposite -lXdamage -lXfixes -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lfontconfig -lfreetype -lm -lgmodule-2.0 -lglib-2.0 -pthread ./.libs/libgtk-x11-2.0.so: undefined reference to `_gtk_marshal_BOOLEAN__BOXED_BOXED' collect2: error: ld returned 1 exit status make[4]: *** [Makefile:2919: gtk-query-immodules-2.0] Error 1
Created attachment 523980 [details] build.log (xz compressed)
Created attachment 523982 [details] emerge --info x11-libs/gtk+:2
Tagging [gnome overlay], because dev-libs/glib-2.54.3-r4::gnome is involved.
Created attachment 524258 [details] build.log (ebuild modified to delete gtkaliasdef.c and *marshal*.h in addition to *marshal*.c) When I also delete the ...marshal... headers, it becomes apparent that the gtkaliasdef.c file generated by gtk/makegtkalias.pl is incompatible with the ...marshal... files generated by glib-genmarshal from glib-2.54.
Created attachment 524260 [details, diff] patch to gtk-2.24.31-r1.ebuild It turns out glib-2.54.3 changed the API and this patch and the following are necessary to make gtk+-2.24.31 compatible with that change. Issue reported upstream at: https://gitlab.gnome.org/GNOME/gtk/issues/106 See-Also: https://gitlab.gnome.org/GNOME/gtk/issues/106
Created attachment 524262 [details, diff] gtk+-2.24.31-fix-gtk-symbols-for-glib-2.54.3.patch
See-Also: https://gitlab.gnome.org/GNOME/gtk/merge_requests/67
*** Bug 653222 has been marked as a duplicate of this bug. ***
(In reply to Dennis Schridde from comment #7) > See-Also: https://gitlab.gnome.org/GNOME/gtk/merge_requests/67 @dennis thank you for taking the patch upstream! @gnome: The patch was merged upstream. Any concerns about cherry-picking it with us?
*** Bug 651766 has been marked as a duplicate of this bug. ***
I think simply removing the pre-generated marshaller removal (and thus not forcing a regeneration) should solve this, but I'll grab all the commits from upstream gtk-2-24 branch as well to be sure.
well, apparently not so simple indeed. /tmp/portage/x11-libs/gtk+-2.24.32/work/gtk+-2.24.32/gtk/gtkaliasdef.c:5933:48: error: redefinition of ‘gtk_marshal_BOOLEAN__POINTER’ etc, etc
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3cc32a9e66e2951898182b1769fc663d7081c350 commit 3cc32a9e66e2951898182b1769fc663d7081c350 Author: Mart Raudsepp <leio@gentoo.org> AuthorDate: 2018-05-07 01:08:49 +0000 Commit: Mart Raudsepp <leio@gentoo.org> CommitDate: 2018-05-07 01:09:15 +0000 x11-libs/gtk+: bump to 2.24.32 Thanks-to: Dennis Schridde <devurandom@gmx.net> Closes: https://bugs.gentoo.org/650536 Bug: https://bugs.gentoo.org/641994 Closes: https://bugs.gentoo.org/648916 Package-Manager: Portage-2.3.28, Repoman-2.3.9 x11-libs/gtk+/Manifest | 2 + x11-libs/gtk+/gtk+-2.24.32.ebuild | 311 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 313 insertions(+)