libtool: link: armv6j-hardfloat-linux-gnueabi-gcc -O2 -pipe -march=armv6j -mfpu=vfp -mfloat-abi=hard -ggdb -fno-omit-frame-pointer -Wall -Wl,-O1 -Wl,--hash-style=gnu -o .libs/gtk-query-immodules-3.0 queryimmodules.o -Wl,--export-dynamic -pthread -Wl,--as-needed ./.libs/libgtk-3.so /var/tmp/portage/x11-libs/gtk+-3.14.5/work/gtk+-3.14.5-.arm/gdk/.libs/libgdk-3.so ../gdk/.libs/libgdk-3.so -lwayland-client -lxkbcommon -lwayland-cursor -lpangocairo-1.0 -lpango-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -latk-1.0 -lgio-2.0 -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lm -pthread libtool: link: armv6j-hardfloat-linux-gnueabi-gcc -O2 -pipe -march=armv6j -mfpu=vfp -mfloat-abi=hard -ggdb -fno-omit-frame-pointer -Wall -Wl,-O1 -Wl,--hash-style=gnu -o .libs/gtk-launch gtk-launch.o -Wl,--as-needed ./.libs/libgtk-3.so /var/tmp/portage/x11-libs/gtk+-3.14.5/work/gtk+-3.14.5-.arm/gdk/.libs/libgdk-3.so -lgmodule-2.0 ../gdk/.libs/libgdk-3.so -lwayland-client -lxkbcommon -lwayland-cursor -lpangocairo-1.0 -lpango-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -latk-1.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lm -pthread ./.libs/libgtk-3.so: undefined reference to `GTK_IS_PLUG' collect2: error: ld returned 1 exit status distcc[18030] ERROR: compile (null) on localhost failed Makefile:2471: recipe for target 'gtk-launch' failed make[4]: *** [gtk-launch] Error 1 make[4]: *** Waiting for unfinished jobs.... ./.libs/libgtk-3.so: undefined reference to `GTK_IS_PLUG' collect2: error: ld returned 1 exit status distcc[18028] ERROR: compile (null) on localhost failed Makefile:2475: recipe for target 'gtk-query-immodules-3.0' failed make[4]: *** [gtk-query-immodules-3.0] Error 1
Created attachment 390310 [details] build.log Changes in ebuild in my overlay (where this failure happens) is only addition of USE=gtk3-only, which makes it build gtk-update-icon-cache instead of relying on gtk+:2 one (I don't have libX11 nor gtk+:2) and satisfying wayland-egl.pc dep from raspberrypi-userland[wayland], in addition to mesa[wayland].
gtkplug.c is only build with x11 backend enabled (it's listed under gtk_use_x11_c_sources), but undefined references to its symbols end up in libgtk-3.so, so when linking something to it (like the utilities built as part of gtk+ emerge), linking fails. Various places in gtk+ itself (including gtkwindow.c) use the GTK_IS_PLUG macro, which is some GType check from boilerplate code, which ends up as an actual function call, but the definition to that isn't compiled in, because the macros generating those calls are in gtkplug.c (G_DEFINE_TYPE_WITH_PRIVATE I think)
This is https://bugzilla.gnome.org/show_bug.cgi?id=739885 with initial fix at https://git.gnome.org/browse/gtk+/commit/?h=gtk-3-14&id=0b8f666e022d983db2cefaffb24315dc34b26673
Created attachment 390316 [details, diff] apply initial fix from upstream git format-patch formatted fix as committed to 3-14 branch right now. Might not be the final fix, but works for now. I didn't really test this in ebuild context, due to heavy times involved on armv6, but in my overlay at least ebuild foo prepare seems to work, and the patch itself separately patched in the failed build and continued with ebuild foo merge also makes it work and I can get gtk+ stuff running on pure wayland with weston-1.6 (gtk 3.12 doesn't work there, different xdg-shell protocol version). Please do a git am, quick compile test and push out.
or just bump to 3.14.6 by now, I think..
Could you check 3.14.6 since it is in tree masked for now ?
# USE="-X -xinerama wayland" emerge -1Bva gtk+:3 Build fine here. Closing.