OSDN Git Service

Fix for Homebrew. I don't care about another environments. This may be reverted and...
[pf3gnuchains/gcc-fork.git] / libffi / README
index f102612..3e3ab3f 100644 (file)
@@ -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: <URL:http://sourceware.org/libffi/>.
 
 
@@ -42,41 +42,57 @@ between the two languages.
 Supported Platforms
 ===================
 
-Libffi has been ported to many different platforms, although this
-release was only tested on:
-
-     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
-     
+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          | OS/2             |
+| X86          | Solaris          |
+| X86          | Windows/Cygwin   |
+| X86          | Windows/MingW    |
+| X86-64       | FreeBSD          |
+| X86-64       | Linux            |
+| X86-64       | OpenBSD          |
+|--------------+------------------|
+
 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
@@ -95,6 +111,14 @@ will add some extra code which will suppress certain warnings when you
 are using Purify with libffi. Only use this switch when using 
 Purify, as it will slow down the library.
 
+It's also possible to build libffi on Windows platforms with
+Microsoft's Visual C++ compiler.  In this case, use the msvcc.sh
+wrapper script during configuration like so:
+
+path/to/configure --enable-shared --enable-static \
+       CC=path/to/msvcc.sh LD=link \
+       CPP=\"cl -nologo -EP\"
+
 Configure has many other options. Use "configure --help" to see them all.
 
 Once configure has finished, type "make". Note that you must be using
@@ -106,65 +130,25 @@ 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.
+History
+=======
 
-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.
+See the ChangeLog files for details.
 
-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).
+3.0.10 ???-??-??
+       Fix the N64 build on mips-sgi-irix6.5.
+       Testsuite fixes for Tru64 Unix.
+       Enable builds with Microsoft's compiler.
+       Enable x86 builds with Sun's compiler.
 
+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.
 
-History
-=======
+3.0.8 Dec-19-08
+        Add *BSD, BeOS, and PA-Linux support.
 
 3.0.7 Nov-11-08
         Fix for ppc FreeBSD.