Solved. So there were a couple of problems. First problem: - gstreamer calls register_printf_specifier to register some printf extensions. - however, the glib supplied *printf family doesn't support registered extensions. - since I was cross-compiling, autoconf couldn't do AC_TRY_RUN() to determine whether my target's *printf() was C98/C99/positional-parameters compliant and as such defaulted to 'no' which meant I got the glib built-in printf which doesn't support the registration of extensions and hence any debugging output containing any of the custom format characters simply failed. First problem resolved why we were unable to get any reasonable debug output. Second problem was the consistant failures to negotiate among streams and so forth. This turned out to be a steady belief within gstreamer that our PowerPC was little-endian and hence the various 64 bit scaling functions (and probably lots of other things) were incorrectly manipulating int's... The fix turned out to require us passing GLIB_CFLAGS to 'configure' to point at our cross-compile sys-root instead of /usr/include/glib-2.0. This allowed <glib.h> to find <glibconfig.h> and everything became immediately happier.