A biblioteca Libffi fornece uma interface de programação portável e de alto nível para várias convenções de chamada. Isso permite a um(a) programador(a) chamar qualquer função especificada por uma descrição de interface de chamada em tempo de execução.
FFI significa Foreign Function Interface. Uma FFI permite a um aplicativo escrito em uma linguagem chamar um aplicativo escrito em outra linguagem. Especificamente, Libffi consegue fornecer uma ponte entre um interpretador, como Perl ou Python, e sub-rotinas da biblioteca compartilhada escrita em C, ou em C++.
          
            Semelhante a GMP, Libffi constrói com otimizações específicas
            para o processador em uso. Se construir para outro sistema,
            [então] mude o valor do parâmetro --with-gcc-arch= no seguinte
            comando para um nome de arquitetura completamente implementada
            pela CPU naquele sistema. Se isso não for feito, [então] todos os
            aplicativos que se vincularem a libffi deflagrarão Erros de Operação Ilegal.
          
Prepare Libffi para compilação:
./configure --prefix=/usr          \
            --disable-static       \
            --with-gcc-arch=native
        O significado da opção de configure:
--with-gcc-arch=native
            Garante que o GCC otimize para o sistema atual. Se isso não for especificado, [então] o sistema é presumido e o código gerado possivelmente não esteja correto. Se o código gerado será copiado de um sistema nativo para um sistema menos capaz, [então] use o sistema menos capaz como um parâmetro. Para detalhes acerca de tipos alternativos de sistema, vejam-se as opções de x86 no manual do GCC.
Compile o pacote:
make
Para testar os resultados, emita:
make check
Instale o pacote:
make install