<mark_weaver>one of glib's tests is failing, and it seems that the N32 is not being properly respected by something in the glib signal delivery stuff. specifically, a 32-bit uint argument is getting passed incorrectly, I think.
<mark_weaver>the N32 ABI says that 32-bit integer values should be sign-extended into the 64-bit registers, even if the 32-bit value is unsigned. and indeed, GCC generates code that clearly assumes this.
<mark_weaver>but when a glib signal is generated, a 32-bit unsigned integer is getting incorrected extended to 64-bits, I believe.
<mark_weaver>well, it might be gobject, not glib. I'm not very familiar with this stuff either.
<mark_weaver>but basically, in glib/gobject, "signals" (nothing to do with POSIX signals) are a way of sending messages between objects that something happened.
<mark_weaver>objects can register callbacks that accept signals of a given type, and then other code can send a signal of a given type to an object.
<mark_weaver>in the gobject test suite, one of the tests involves registering a callback for a signal, and then sending a signal with a whole bunch of arguments (treated as varargs) of various values, and the receiving callback checks to see that everything is correct.
<mark_weaver>one of the values is UINT_MAX-42 (4294967253), passed as a 32-bit unsigned integer.
<mark_weaver>the code on the receiving end simply checks that the 64-bit register contains -43