here is an update for libffi 3.0.11. For now, only tested on x86-linux and arm-linux-gnueabi. Proposing the check it in, and then test again, if the libffi_osx and libffi_msvc copies can be removed, if 3.0.11 works on these platforms (however I can't test on these myself).
Removing libffi_osx would be fairly hard due to the creation of fat binaries, the libffi_osx tree supports building all files using 'cc -arch i386 -arch ppc -arch x86_64', the regular libffi sources require a more complex dance (basically build all architectures separately then merge them together). OTOH libffi_osx seems to have problems when using with recent versions of clang.
Few warnings when building trunk (on 10.6): ./Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:49: warning: function declaration isn’t a prototype ./Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:379: warning: function declaration isn’t a prototype