• Simon Marlow's avatar
    Import libffi-3.0.4, and use it to provide FFI support in GHCi · e0fcf61d
    Simon Marlow authored
    This replaces the hand-rolled architecture-specific FFI support in
    GHCi with the standard libffi as used in GCJ, Python and other
    projects.  I've bundled the complete libffi-3.0.4 tarball in the
    source tree in the same way as we do for GMP, the difference being
    that we always build and install our own libffi regardless of whether
    there's one on the system (it's small, and we don't want
    dependency/versioning headaches).
    In particular this means that unregisterised builds will now have a
    fully working GHCi including FFI out of the box, provided libffi
    supports the platform.
    There is also code in the RTS to use libffi in place of
    rts/Adjustor.c, but it is currently not enabled if we already have
    support in Adjustor.c for the current platform.  We need to assess the
    performance impact before using libffi here too (in GHCi we don't care
    too much about performance).