New in 2.5:

* Added support for the following platforms:
  (Previously, a build on these platforms failed.)
  - loongarch64: Linux with lp64d ABI.
  - riscv64: Linux with musl libc.
  - hppa: Linux.
  - powerpc: FreeBSD, NetBSD.
  - powerpc64: FreeBSD.
  - powerpc64le: FreeBSD.
  - arm: Android.

* Fixed support for the following platforms:
  (Previously, a build on these platforms appeared to succeed but was buggy.)
  - ia64: Linux.
  - arm64: OpenBSD.

* Simplified the environmental requirements (the library no longer allocates
  a temporary file in /tmp) on the following platforms:
  - Linux.
  - macOS.
  - FreeBSD 13 and newer.
  - NetBSD 8 and newer.

New in 2.4:

* Added support for the following platforms:
  (Previously, a build on these platforms failed.)
  - arm64: macOS 11.
  - arm: FreeBSD 12.
  - sparc: Solaris 11 32-bit.

New in 2.3:

* Added support for the following platforms:
  (Previously, a build on these platforms failed.)
  - x86_64: FreeBSD 13, OpenBSD 6.5 and newer.
  - powerpc64: AIX 7 with xlclang compiler.

* Fixed a couple of multithread-safety bugs in the trampoline and callback
  packages.

New in 2.2:

* Added support for the following platforms:
  (Previously, a build on these platforms failed.)
  - armv6 (Raspberry Pi): Linux.
  - hppa: Linux 32-bit.
  - riscv32: Linux with ilp32d ABI.
  - riscv64: Linux with lp64d ABI.

* The build for the mips 32-bit ABI is now compatible with toolchains for
  the 'fpxx' ABI variant.  The downside is that the mips1 architecture is
  no longer supported.

* Fixed a bug regarding passing of more than 8 arguments on the following
  platforms:
  - arm64: Linux 64-bit.

* Fixed a stack corruption bug on the following platforms:
  - hppa: HP-UX 32-bit.

New in 2.1:

* Added support for the following platforms:
  (Previously, a build on these platforms failed.)
  - arm: Linux with PIE-enabled gcc.
  - x86_64: Solaris 11.3.
  - OpenBSD 6.1.
  - HardenedBSD 10 and 11.

* Fixed a bug regarding passing of pointers on the following platforms:
  - x86_64: Linux with x32 ABI: CC="gcc -mx32".

* Fixed a crash in trampoline on the following platforms:
  - mips: Linux with CC="gcc -mabi=64", little endian.

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*'.

* API changes in <callback.h>:
  - The argument of callback_address(), callback_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.

New in 1.10:

* Added support for PowerPC NetBSD.

New in 1.9:

* Added support for x86_64 (AMD64) Linux.
* Added support for PowerPC MacOS X.

New in 1.8:

* Added support for IA64 Linux.

New in 1.7:

* Struct types containing elements other than int, long, long long, pointer
  are not supported any more. Passing them as arguments and results is too
  hairy.
* Added support for PowerPC Linux.

New in 1.6:

* The avcall and callback packages are compiled as position-independent code,
  if CC="gcc -fPIC".
* The avcall and callback packages are built as shared libraries, if
  the option "--enable-shared" is passed to configure.
* The package can now be built with CC="gcc -x c++".
* Improved RS6000/PowerPC support.
* Improved support for gcc on Irix6 (-n32 ABI).
* Added preliminary support for 64-bit SPARC.

New in 1.5:

* Added support for m68k Linux.

New in 1.4:

* Added support for the two new ABIs on Irix6 (-n32, -64).
* A fix for DEC Alpha.

New in 1.3.1:

* Added support for Mingw32 on Win32.
* Fixed a compilation problem in trampoline on m68k NetBSD.
* Fixed an installation problem with clisp: When configured outside the source
  directory, callback.h would not be copied into the build directory.

New in 1.3:

* Added the callback package, a reentrant combination of vacall and trampoline.
* The avcall and callback packages are multithread-safe.
* Fixed bugs in trampoline on hppa and rs6000.
* On hppa, added support for gcc-2.7.2, although its calling convention is
  different from gcc-2.6.3.

New in 1.2.1:

* Added support for MSVC5 on Win32.

New in 1.2:

* Support passing/returning values of type ‘long long’ and ‘unsigned long long’
  on platforms which have these types.
* Support for "stdcall" calling convention on i386.
* Added support for Cygwin32 and MSVC4 on Win32.
* Added support for EMX on OS/2.
* Added support for m68k AmigaOS (Jörg Höhle).
* Added support for m68k SunOS 4.0.3.
* More reliable cache-flushing in trampoline.

New in 1.1:

* Added support for SUNWspro cc on Sparc Solaris.
* Added support for AIX 4.
* Added preliminary support for 64-bit MIPS.

