diff --git a/libffi/ChangeLog b/libffi/ChangeLog index a7ff2327160..becf7d4e857 100644 --- a/libffi/ChangeLog +++ b/libffi/ChangeLog @@ -1,3 +1,7 @@ +2009-12-31 Anthony Green + + * README: Update for libffi 3.0.9. + 2009-12-27 Matthias Klose * configure.ac (HAVE_LONG_DOUBLE): Define for mips when diff --git a/libffi/README b/libffi/README index f102612d11c..48b59d216e6 100644 --- a/libffi/README +++ b/libffi/README @@ -4,7 +4,7 @@ shipped with GCC as convenience. Status ====== -libffi-3.0.8 was released on December 19, 2008. Check the libffi web +libffi-3.0.9 was released on December 31, 2009. Check the libffi web page for updates: . @@ -42,41 +42,56 @@ between the two languages. Supported Platforms =================== -Libffi has been ported to many different platforms, although this -release was only tested on: +Libffi has been ported to many different platforms. +For specific configuration details and testing status, please +refer to the wiki page here: + + http://www.moxielogic.org/wiki/index.php?title=Libffi_3.0.9 + +At the time of release, the following basic configurations have been +tested: + +|--------------+------------------| +| Architecture | Operating System | +|--------------+------------------| +| Alpha | Linux | +| ARM | Linux | +| AVR32 | Linux | +| HPPA | HPUX | +| IA-64 | Linux | +| MIPS | IRIX | +| MIPS | Linux | +| MIPS64 | Linux | +| PowerPC | Linux | +| PowerPC | Mac OSX | +| PowerPC | FreeBSD | +| PowerPC64 | Linux | +| S390 | Linux | +| S390X | Linux | +| SPARC | Linux | +| SPARC | Solaris | +| SPARC64 | Linux | +| SPARC64 | FreeBSD | +| X86 | FreeBSD | +| X86 | kFreeBSD | +| X86 | Linux | +| X86 | Mac OSX | +| X86 | OpenBSD | +| X86 | Solaris | +| X86 | Windows/Cygwin | +| X86 | Windows/MingW | +| X86-64 | FreeBSD | +| X86-64 | Linux | +| X86-64 | OpenBSD | +|--------------+------------------| - arm oabi linux - arm eabi linux - hppa linux - mips o32 linux (little endian) - powerpc darwin - powerpc freebsd - powerpc64 linux - sparc solaris - sparc64 freebsd - sparc64 solaris - x86 cygwin - x86 darwin - x86 freebsd - x86 linux - x86 openbsd - x86 solaris - x86-64 mingw - x86-64 darwin - x86-64 linux - x86-64 OS X - x86-64 freebsd - x86-64 solaris - Please send additional platform test results to -libffi-discuss@sourceware.org. +libffi-discuss@sourceware.org and feel free to update the wiki page +above. Installing libffi ================= -[Note: before actually performing any of these installation steps, - you may wish to read the "Platform Specific Notes" below.] - First you must configure the distribution for your particular system. Go to the directory you wish to build libffi in and run the "configure" program found in the root directory of the libffi source @@ -106,66 +121,20 @@ This will require that you have DejaGNU installed. To install the library and header files, type "make install". -Platform Specific Notes -======================= - - MIPS - Irix 5.3 & 6.x - --------------------- - -Irix 6.2 and better supports three different calling conventions: o32, -n32 and n64. Currently, libffi only supports both o32 and n32 under -Irix 6.x, but only o32 under Irix 5.3. Libffi will automatically be -configured for whichever calling convention it was built for. - -By default, the configure script will try to build libffi with the GNU -development tools. To build libffi with the SGI development tools, set -the environment variable CC to either "cc -32" or "cc -n32" before -running configure under Irix 6.x (depending on whether you want an o32 -or n32 library), or just "cc" for Irix 5.3. - -With the n32 calling convention, when returning structures smaller -than 16 bytes, be sure to provide an RVALUE that is 8 byte aligned. -Here's one way of forcing this: - - double struct_storage[2]; - my_small_struct *s = (my_small_struct *) struct_storage; - /* Use s for RVALUE */ - -If you don't do this you are liable to get spurious bus errors. - -"long long" values are not supported yet. - -You must use GNU Make to build libffi on SGI platforms. - - - PowerPC System V ABI - -------------------- - -There are two `System V ABI's which libffi implements for PowerPC. -They differ only in how small structures are returned from functions. - -In the FFI_SYSV version, structures that are 8 bytes or smaller are -returned in registers. This is what GCC does when it is configured -for solaris, and is what the System V ABI I have (dated September -1995) says. - -In the FFI_GCC_SYSV version, all structures are returned the same way: -by passing a pointer as the first argument to the function. This is -what GCC does when it is configured for linux or a generic sysv -target. - -EGCS 1.0.1 (and probably other versions of EGCS/GCC) also has a -inconsistency with the SysV ABI: When a procedure is called with many -floating-point arguments, some of them get put on the stack. They are -all supposed to be stored in double-precision format, even if they are -only single-precision, but EGCS stores single-precision arguments as -single-precision anyway. This causes one test to fail (the `many -arguments' test). - - History ======= +See the ChangeLog files for details. + +3.0.9 Dec-31-09 + Add AVR32 and win64 ports. Add ARM softfp support. + Many fixes for AIX, Solaris, HP-UX, *BSD. + Several PowerPC and x86-64 bug fixes. + Build DLL for windows. + +3.0.8 Dec-19-08 + Add *BSD, BeOS, and PA-Linux support. + 3.0.7 Nov-11-08 Fix for ppc FreeBSD. (thanks to Andreas Tobler)