On 01/12/2015 11:08 AM, Uros Bizjak wrote: > Hello! > >> Upstream libffi has added support for Go closures (using the static chain), >> and support for complex numbers. Perhaps less relevant is new support for >> arc, microblaze, moxie, nios, and or1k targets. >> >> Without additional changes for Go, this merge has little effect. Within the >> gcc tree libffi is primarily used by libjava. >> >> Tested with no regressions on {i686,x86_64,ppc64,s390x,aarch64,alpha}-linux. > > This patchset regressed libjava on -m32 x86_64-linux-gnu (Fedora 21): > > === libjava tests === > > > Running target unix > > === libjava Summary for unix === > > > Running target unix/-m32 > FAIL: libjava.jar/TestClosureGC.jar execution - gij test > FAIL: libjava.jar/simple.jar execution - gij test ...
Ug. I don't know how I let this slip by. Fixed thus. r~ * src/x86/ffi.c (ffi_raw_call): Fill in frame. diff --git a/libffi/src/x86/ffi.c b/libffi/src/x86/ffi.c index 3885e39..feb5cbb 100644 --- a/libffi/src/x86/ffi.c +++ b/libffi/src/x86/ffi.c @@ -675,6 +675,10 @@ ffi_raw_call if (rsize) rvalue = frame + 1; + frame->fn = fn; + frame->flags = flags; + frame->rvalue = rvalue; + narg_reg = 0; switch (flags) {