| <?xml version="1.0" encoding="UTF-8"?> |
| <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> |
| <pkgmetadata> |
| <herd>toolchain</herd> |
| <longdescription lang="en"> |
| Compilers for high level languages generate code that follow certain |
| conventions. These conventions are necessary, in part, for separate |
| compilation to work. One such convention is the "calling |
| convention". The "calling convention" is essentially a set of |
| assumptions made by the compiler about where function arguments will |
| be found on entry to a function. A "calling convention" also specifies |
| where the return value for a function is found. |
| |
| Some programs may not know at the time of compilation what arguments |
| are to be passed to a function. For instance, an interpreter may be |
| told at run-time about the number and types of arguments used to call |
| a given function. Libffi can be used in such programs to provide a |
| bridge from the interpreter program to compiled code. |
| |
| The libffi library provides a portable, high level programming |
| interface to various calling conventions. This allows a programmer to |
| call any function specified by a call interface description at run |
| time. |
| |
| Ffi stands for Foreign Function Interface. A foreign function |
| interface is the popular name for the interface that allows code |
| written in one language to call code written in another language. The |
| libffi library really only provides the lowest, machine dependent |
| layer of a fully featured foreign function interface. A layer must |
| exist above libffi that handles type conversions for values passed |
| between the two languages. |
| </longdescription> |
| <use> |
| <flag name='pax_kernel'>Use PaX emulated trampolines, for we can't use PROT_EXEC</flag> |
| </use> |
| <upstream> |
| <remote-id type="cpe">cpe:/a:libffi_project:libffi</remote-id> |
| </upstream> |
| </pkgmetadata> |