optimized GResource embedding breaking odd architectures, again
With GTK 4.7.2 in Debian, I'm seeing GResource brokenness making unit tests fail, similar to #4617 (closed), but this time for mipsel (MIPS32R2 little-endian). Some samples from the build log:
ERROR:../../../testsuite/gdk/texture.c:39:test_texture_from_pixbuf: assertion failed (error == NULL): Unrecognized image file format (gdk-pixbuf-error-quark, 3)
...
Gtk:ERROR:../../../gtk/gtkcomposetable.c:1425:gtk_compose_table_foreach: assertion failed: (seq_index[i] <= seq_index[i + 1])
...
(/<<PKGBUILDDIR>>/debian/build/deb/testsuite/gtk/propertylookuplistmodel:2303639): Gtk-WARNING **: 19:12:44.756: Theme parser error: Default-light.css:1:141519: Expected '{' after selectors
As in #4617 (closed), this is looking as though GResource lookups are returning corrupt or otherwise wrong data. Changing if not meson.is_cross_build() and build_machine.cpu_family() != 'arm' and (etc.)
into if false
(so that we end up on the same slow-but-safe code path used for cross-compiling and ARM) makes it work correctly.
This was previously working on mipsel, but Debian recently swapped the default compiler to gcc 12, and also recently upgraded glibc to 2.34, so one of those might have been the trigger for this.
I am not a MIPS porter and I don't know a whole lot about it, but I think MIPS is unusual in that it has multiple ABIs in common use (like the difference between i386 and x32, but more so), so possibly the problem is that objcopy is lower-level than the usual compiler/linker and is choosing the wrong ABI or object format for the GResource stuff.