ORBit2 auto-generates headers as part of its build-process, and for some reason - on IRIX - these are always corrupt in exactly the same way. The identical patch can apply cleanly to ORBit2 2.14.16 and 2.14.17. Somehow, it seems out output "^PH³ " in place of "d 1\n". This is entirely repeatable. It's possible that this is another string-formatting issue (as seen with sqlite), but this seems different... I'd not sure how to go about integrating anything into the ebuild either, as these headers are generated during the build, and the entire build, including configuration and compilation, are all handled by a single call to an eclass. I ended up doing an 'emerge orbit', followed by applying the patch, manually completing the build, touching '.configured' and '.compiled', then then running 'ebuild ... install'/'ebuild ... qmerge'.
Created attachment 184797 [details, diff] ORBit2 uncorrupt patch The only formats similar to those causing problems in sqlite are: linc2/test/test-linc.c: fprintf (stderr, "\t'%8s': %2d, %3d, %2d, 0x%.4x [%c%c%c%c%c]\n", src/orb/poa/poa.c:# define LOCK_DEBUG(a) g_printerr("%p: %6s file %s: line %d (%s)\n", \ test/typelib-dump.c: printf ("Type %12s: '%s'\n", test/test-performance.c: fprintf (stderr, " copy %20s : %g(ms)\n", test/everything/client.c: fprintf (stderr, "Protocol %8s: %s\n", ... so this does look like a different problem.
Warning - if it's uploaded correctly, the patch contains control-characters, and probably won't display correctly in your browser. Don't copy-and-paste!
this piece of code seems to be responsible for it, but it doesn't look suspicious at all: src/idl-compiler/orbit-idl-c-headers.c:349 static void ch_output_interface(IDL_tree tree, OIDL_Run_Info *rinfo, OIDL_C_Info *ci) { char *fullname; fullname = orbit_cbe_get_typespec_str(tree); fprintf(ci->fh, "#if !defined(ORBIT_DECL_%s) && ! defined(_%s_defined)\n#define ORBIT_DECL_%s 1\n#define _%s_defined 1\n", fullname, fullname, fullname, fullname); if ( tree->declspec & IDLF_DECLSPEC_PIDL ) { /* PIDL interfaces are not normal CORBA Objects */ fprintf(ci->fh, "typedef struct %s_type *%s;\n", fullname, fullname); fprintf(ci->fh, "#ifndef TC_%s\n", fullname); fprintf(ci->fh, "# define TC_%s TC_CORBA_Object\n", fullname); fprintf(ci->fh, "#endif\n");
Created attachment 186091 [details, diff] ORBit2 IDL generation patch Okay, this is weird... on a hunch, I split the printfs in the function above, and now orbit compiles and tests successfully(*). Perhaps this is some bug which only manifests when the same argument is passed to (f)printf multiple times? (*) Actually, the tests fail with: Please kill timeout-server and/or lt-timeout-server from another window, then type something here. ... yet the only process running is "timeout.sh". Sending a HUP to this results in: /opt/gentoo/bin/bash: line 4: 57546172 Hangup ${dir}$tst FAIL: timeout.sh ... ======================================================================= 1 of 6 tests failed Please report to http://bugzilla.gnome.org/enter_bug.cgi?product=ORBit2 ======================================================================= make[4]: *** [check-TESTS] Error 1 ... but otherwise everything looks okay. IMHO, test-suites shouldn't require manual input unless absolutely vital, and certainly shouldn't require you to kill processes to complete. Any chance of patching-out this particular test?
We are sorry to close this bug. We lack the man-power and devotion to support mips-irix in the tree.