mirror of git://gcc.gnu.org/git/gcc.git
parent
50117ecbdb
commit
78542dee33
|
|
@ -1,3 +1,7 @@
|
||||||
|
2009-12-31 Anthony Green <green@redhat.com>
|
||||||
|
|
||||||
|
* README: Update for libffi 3.0.9.
|
||||||
|
|
||||||
2009-12-27 Matthias Klose <doko@ubuntu.com>
|
2009-12-27 Matthias Klose <doko@ubuntu.com>
|
||||||
|
|
||||||
* configure.ac (HAVE_LONG_DOUBLE): Define for mips when
|
* configure.ac (HAVE_LONG_DOUBLE): Define for mips when
|
||||||
|
|
|
||||||
143
libffi/README
143
libffi/README
|
|
@ -4,7 +4,7 @@ shipped with GCC as convenience.
|
||||||
Status
|
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/>.
|
page for updates: <URL:http://sourceware.org/libffi/>.
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -42,41 +42,56 @@ between the two languages.
|
||||||
Supported Platforms
|
Supported Platforms
|
||||||
===================
|
===================
|
||||||
|
|
||||||
Libffi has been ported to many different platforms, although this
|
Libffi has been ported to many different platforms.
|
||||||
release was only tested on:
|
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
|
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
|
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
|
First you must configure the distribution for your particular
|
||||||
system. Go to the directory you wish to build libffi in and run the
|
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
|
"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".
|
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
|
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
|
3.0.7 Nov-11-08
|
||||||
Fix for ppc FreeBSD.
|
Fix for ppc FreeBSD.
|
||||||
(thanks to Andreas Tobler)
|
(thanks to Andreas Tobler)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue