./devel/libffcall, Foreign function call libraries

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 2.0, Package name: libffcall-2.0, Maintainer: adam

GNU libffcall is a library which can be used to build foreign
function call interfaces in embedded interpreters.


Required to build:
[pkgtools/cwrappers]

Master sites: (Expand)

SHA1: 9ac4d0027052ea5d4fa74dace264296d2ded7950
RMD160: 5a139a5101a99963a46209522f8cb4f16be4853f
Filesize: 916.606 KB

Version history: (Expand)


CVS history: (Expand)


   2017-09-10 22:00:49 by Thomas Klausner | Files touched by this commit (5)
Log message:
Import libffcall-2.0 as devel/libffcall.

GNU libffcall is a library which can be used to build foreign
function call interfaces in embedded interpreters.

Changes compared to devel/ffcall:

New in 2.0:

* The package now installs a library libffcall.{a,so}. It contains the
  'avcall' and 'callback' packages. The libraries libavcall.{a,so} and
  libcallback.{a,so} are still installed as well, but are deprecated.

* The installed libraries are now installed as shared libraries by default
  (except for libvacall, which is still a static library only).

* The installed shared libraries are now properly versioned. This means that
  when installing with --enable-shared, upgrading to a newer version of
  libffcall will not break existing binaries.

* The installed include files are now platform independent. This means that
  you can now install libffcall for different ABIs on the same system, using
  the same --prefix option but different --exec-prefix options for each ABI.

* API changes in <trampoline.h>:
  - The second argument of alloc_trampoline() is now a 'void**', rather
    than a 'void*'.
  - The return value of trampoline_variable() is now a 'void**', rather
    than a 'void*'.
  - The argument of trampoline_address(), trampoline_variable(),
    trampoline_data() is now a function pointer instead of a 'void*'.

* Fixed a bug regarding floating-point arguments followed by
  non-floating-point arguments on the following platforms:
  - arm: Linux 32-bit, with hardware floats.
  - powerpc: Linux 32-bit.
  - s390: Linux.

* Fixed a bug regarding structure returns on the following platforms:
  - i386: FreeBSD.
  - i386: MinGW.
  - mips: old 32-bit ABI (Linux, IRIX).

* Added support for the following platforms:
  (Previously, a build on these platforms failed.)
  - i386: MSVC 14.
  - x86_64: Cygwin.
  - x86_64: MinGW.
  - x86_64: MSVC 14.
  - hppa64: HP-UX 11.
  - m68k: Linux.

* Verified support for the following platforms:
  (A build on these platforms worked and still works.)
  - i386: FreeBSD, NetBSD, OpenBSD, DragonFly BSD.
  - i386: Hurd.
  - x86_64: FreeBSD, NetBSD, OpenBSD.

New in 1.13:

* The license has been changed from GPLv2 to GPLv2+.

* Added support for the following platforms:
  (Previously, a build on these platforms failed.)
  - x86_64: Mac OS X 64-bit.
  - x86_64: Solaris 64-bit.
  - x86_64: Linux with x32 ABI: CC="gcc -mx32".
  - arm: Linux 32-bit, without hardware floats.
  - arm64: Linux 64-bit.
  - s390x: Linux 64-bit.
  - powerpc: AIX 64-bit.
  - mips: IRIX 6.5 with CC="cc -32".
  - sparc: Solaris 64-bit.

* Fixed support for the following platforms:
  (Previously, a build on these platforms appeared to succeed but was buggy.)
  - x86_64: Linux.
  - arm: Linux 32-bit, with hardware floats.
  - powerpc: Linux 64-bit.
  - mips: Linux with CC="gcc -mabi=32".
  - mips: Linux with CC="gcc -mabi=n32".
  - mips: Linux with CC="gcc -mabi=64".
  - mips: IRIX 6.5 with CC="gcc -mabi=n32".
  - s390: Linux.
  - sparc: Linux 64-bit.
  - ia64: Linux.
  - hppa: HP-UX 32-bit.

* Verified support for the following platforms:
  (A build on these platforms worked and still works.)
  - i386: Linux, Solaris, Mac OS X.
  - powerpc: Linux 32-bit.
  - powerpc: AIX 32-bit.
  - powerpc: MacOS X.
  - mips: IRIX 6.5 with CC="cc -n32".
  - sparc: Solaris 32-bit.
  - sparc: Linux 32-bit: CC="gcc -m32".
  - alpha: Linux.

* Support for a security feature: On Linux and FreeBSD platforms, linking with
  the libffcall libraries no longer causes the stack to become executable.

New in 1.12:

* Added ppc64le to the list of supported architectures.

New in 1.11:

* Header now define LIBFFCALL_VERSION (to 0x010B).
* Better support for IA64 on Linux (kernel 2.6.16+ and gcc 4.1.0+).
* Added ARM support from Jonathan Olson (debian 1.10-2).
* Added MIPSel support from Thiemo Seufer (debian 1.10-2).
* Added ARMel support from Max Lapan.