
http://koji.fedoraproject.org/koji/getfile?taskID=3251249&name=build.log . | *** unexpected failure for fed001(normal) Note the Fedora build is patched to use system libffi. Hmm. What happens if you don't patch it? More hmmm: that makes the x86 unexpected errors go to 0! http://koji.fedoraproject.org/koji/taskinfo?taskID=3253482
This is surprising because I don't think ordinary FFI code should be even using libffi on x86 - we have our own implementation in rts/Adjustors.c. In 7.2 there are some changes in this area because we now guarantee to keep the C stack pointer aligned on a 16-byte boundary (see http://hackage.haskell.org/trac/ghc/ticket/5250), and as a result we switched to using the Mac OS X implementation in rts/Adjustors.c which was already doing the necessary alignment.
I see, thanks for the explanation. :)
You aren't setting UseLibFFIForAdjustors=YES anywhere, are you? (even if you were, I would expect it to still work though, albeit a bit more slowly).
No, I don't think so. The Fedora ghc build is pretty standard - it should be very close to the upstream defaults.
It would be good to make Linux default to use system libffi anyway. : I don't like having to do this, but it reduces our testing surface (we don't want to have to test against N different versions of libffi).
Ok, but recently libffi is not updated that often. (Fedora will have shipped 3.0.9 for 4 releases soon (and the previous 4 releases were with 3.0.5). I suspect other distros are similar.)
I'm quite happy for distros to build against their system libffi though, and we should make that easier. Note that if you build against the system libffi you are responsible for fully testing the combination (I know you already do that, which is great).
A configure option to enable system libffi would be very good. Should I file an RFE for that? Thanks, Jens