GNOME Bugzilla – Bug 652168
Crosscompiling Fails if build<=2.24 and host >2.24
Last modified: 2011-06-20 21:25:32 UTC
During make, the native "glib-genmarshal" ist called (as the just-build one cannot be used) on the build system that may be older than the version you are just compiling. Build error: GLib-Genmarshal-WARNING **: unknown type: VARIANT Solution: Check in configure whether glib on build machine is too old. Additional enhancement: for crosscompile, the "export NM=nm" needs to be set manually, otherwise make fails with an error that is not understandable, as it pipes something this way: "command1 | | command2 " Solution: Check in configure whether NM is set if crosscompiling
Maybe the easiest thing would be to rewrite glib-genmarshal in Python or Perl so it's arch-independent.
Another option is to drop gobject/gmarshal.list and gio/gio-marshal.list from GLib. We could hardcode the former since it's part of the API/ABI and we can only add to it anyways. For the latter, we could just switch to using g_cclosure_marshal_generic in all of gio/.
Created attachment 190272 [details] [review] Stop using glib-genmarshal at build time To help cross compilation, don't use glib-genmarshal in our build. This is easy now that we have g_cclosure_marshal_generic(). In gobject/, add gmarshal.[ch] to git (making the existing entry points stubs). In gio/, simply switch to using g_cclosure_marshal_generic().
Comment on attachment 190272 [details] [review] Stop using glib-genmarshal at build time ok, make check fails, but that's not the fault of this patch.
Attachment 190272 [details] pushed as b74e2a7 - Stop using glib-genmarshal at build time