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++.
Assim como o GMP, o Libffi constrói com otimizações específicas
para o processador em uso. Se construir para outro sistema, mude
o valor do parâmetro --with-gcc-arch=
no comando a
seguir para um nome de arquitetura totalmente implementado por
ambos a CPU do
anfitrião e a CPU naquele sistema. Se isso não for feito, todos
os aplicativos que se vincularem a libffi
deflagarão Erros de Operação Ilegal. Se
você não conseguir descobrir um valor seguro para ambas as CPUs,
substitua o parâmetro por --without-gcc-arch
para produzir uma biblioteca
genérica.
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