Mark does this ring a bell to you? I know you have a mip64 n32 machine that you use sometimes.
Andy On Wed 13 May 2015 20:31, "Schaefer, Frank" <frank.schae...@tekcomms.com> writes: > I've encountered two test failures with guile 2.0.11 on mips64 > big-endian, whenever I build with -mabi=n32 (these test failures do > not occur with -mabi=64). At least one of them I have resolved with > the attached patch. > > First testcase failure: test-ffi (fixed by my patch). The guile code > apparently assumes that sizeof(ffi_arg)<=sizeof(void **). This is a > faulty assumption; it holds on *most* platforms, but with the mips64 > n32 ABI, sizeof(void **)==4, and sizeof(ffi_arg)==8. So every foreign > function that returns a pointer is liable to corrupt data, and anyone > retrieving the return value as a simple void * is only going to get > sign-extension garbage on big-endian (usually NULL). > > Second testcase failure: check-guile fails due to 'ERROR: > foreign.test: procedure->pointer: qsort - arguments: > ((null-pointer-error "pointer->bytevector" "null pointer dereference" > () ()))'. I strongly suspect it's related to the ffi_arg issue > mentioned above, but I'm still peeling away macro ugliness to track it > down. If anyone wants to pitch in with additional guidance or > patchwork, I'd be happy to listen and test. > > (The patch applies against 2.0.11 release or against current HEAD, > where it also fixes the new testcases for test-foreign-object-scm and > test-foreign-object-c. HEAD also fails the test-out-of-memory case, > though, which precludes further unit tests.)