libffi was broken on 64-bit, any c function returning a struct > 8 bytes and not a multiple of 16 will cause a segfault. This is because between 3.1 and 3.2 somebody changed (size != 1 || size != 2 || size != 4 || size != 8) into (size & (1 | 2 | 4 | 8) == 0), which is not the same.