blob: e8da7f6bfe5e24ed71a254a9f3a9b20dfae5b94c [file] [log] [blame]
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001Status
2======
3
Anthony Green8d5debc2014-11-12 08:04:51 -05004libffi-4?? was released on TBD. Check the libffi web
Anthony Green67c0c072014-11-11 07:30:49 -05005page for updates: <URL:http://sourceware.org/libffi/>.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04006
7
8What is libffi?
9===============
10
11Compilers for high level languages generate code that follow certain
12conventions. These conventions are necessary, in part, for separate
13compilation to work. One such convention is the "calling
14convention". The "calling convention" is essentially a set of
15assumptions made by the compiler about where function arguments will
16be found on entry to a function. A "calling convention" also specifies
17where the return value for a function is found.
18
19Some programs may not know at the time of compilation what arguments
20are to be passed to a function. For instance, an interpreter may be
21told at run-time about the number and types of arguments used to call
22a given function. Libffi can be used in such programs to provide a
23bridge from the interpreter program to compiled code.
24
25The libffi library provides a portable, high level programming
26interface to various calling conventions. This allows a programmer to
27call any function specified by a call interface description at run
28time.
29
30FFI stands for Foreign Function Interface. A foreign function
31interface is the popular name for the interface that allows code
32written in one language to call code written in another language. The
33libffi library really only provides the lowest, machine dependent
34layer of a fully featured foreign function interface. A layer must
35exist above libffi that handles type conversions for values passed
36between the two languages.
37
38
39Supported Platforms
40===================
41
Anthony Green0cfe60e2009-12-29 10:06:04 -050042Libffi has been ported to many different platforms.
43For specific configuration details and testing status, please
44refer to the wiki page here:
Anthony Greenc6dddbd2009-10-04 08:11:33 -040045
Anthony Green67c0c072014-11-11 07:30:49 -050046 http://www.moxielogic.org/wiki/index.php?title=Libffi_3.2
Anthony Green0cfe60e2009-12-29 10:06:04 -050047
48At the time of release, the following basic configurations have been
49tested:
50
Anthony Green9742f912013-01-21 07:03:41 -050051|-----------------+------------------+-------------------------|
Anthony Greencd41aea2013-01-10 17:25:45 -050052| Architecture | Operating System | Compiler |
Anthony Green9742f912013-01-21 07:03:41 -050053|-----------------+------------------+-------------------------|
Anthony Green6ae046c2013-11-30 21:06:51 -050054| AArch64 (ARM64) | iOS | Clang |
Anthony Greencd41aea2013-01-10 17:25:45 -050055| AArch64 | Linux | GCC |
56| Alpha | Linux | GCC |
57| Alpha | Tru64 | GCC |
Mischa Jonkerb082e152013-06-10 16:19:33 +020058| ARC | Linux | GCC |
Anthony Greencd41aea2013-01-10 17:25:45 -050059| ARM | Linux | GCC |
60| ARM | iOS | GCC |
61| AVR32 | Linux | GCC |
62| Blackfin | uClinux | GCC |
63| HPPA | HPUX | GCC |
64| IA-64 | Linux | GCC |
65| M68K | FreeMiNT | GCC |
Anthony Greenff062692013-10-08 06:32:18 -040066| M68K | Linux | GCC |
Anthony Greencd41aea2013-01-10 17:25:45 -050067| M68K | RTEMS | GCC |
Anthony Greenff062692013-10-08 06:32:18 -040068| M88K | OpenBSD/mvme88k | GCC |
Anthony Green2fb527a2013-03-16 07:46:38 -040069| Meta | Linux | GCC |
Anthony Greenaeb87192013-01-21 07:37:30 -050070| MicroBlaze | Linux | GCC |
Anthony Greencd41aea2013-01-10 17:25:45 -050071| MIPS | IRIX | GCC |
72| MIPS | Linux | GCC |
73| MIPS | RTEMS | GCC |
74| MIPS64 | Linux | GCC |
Anthony Greenff062692013-10-08 06:32:18 -040075| Moxie | Bare metal | GCC |
Sandra Loosemore16b93a22013-10-15 15:33:59 -040076| Nios II | Linux | GCC |
Sebastian Macke0f316ab2014-09-27 00:19:15 +000077| OpenRISC | Linux | GCC |
Anthony Green10e77222013-02-10 08:47:26 -050078| PowerPC 32-bit | AIX | IBM XL C |
79| PowerPC 64-bit | AIX | IBM XL C |
Anthony Greencd41aea2013-01-10 17:25:45 -050080| PowerPC | AMIGA | GCC |
81| PowerPC | Linux | GCC |
82| PowerPC | Mac OSX | GCC |
83| PowerPC | FreeBSD | GCC |
Anthony Green10e77222013-02-10 08:47:26 -050084| PowerPC 64-bit | FreeBSD | GCC |
Anthony Green2f450822013-11-18 06:52:29 -050085| PowerPC 64-bit | Linux ELFv1 | GCC |
86| PowerPC 64-bit | Linux ELFv2 | GCC |
Anthony Greencd41aea2013-01-10 17:25:45 -050087| S390 | Linux | GCC |
88| S390X | Linux | GCC |
89| SPARC | Linux | GCC |
90| SPARC | Solaris | GCC |
Anthony Greenbff052d2013-01-11 10:24:32 -050091| SPARC | Solaris | Oracle Solaris Studio C |
Anthony Greencd41aea2013-01-10 17:25:45 -050092| SPARC64 | Linux | GCC |
93| SPARC64 | FreeBSD | GCC |
Anthony Greenbff052d2013-01-11 10:24:32 -050094| SPARC64 | Solaris | Oracle Solaris Studio C |
Anthony Greencd41aea2013-01-10 17:25:45 -050095| TILE-Gx/TILEPro | Linux | GCC |
Anthony Greenff062692013-10-08 06:32:18 -040096| VAX | OpenBSD/vax | GCC |
Anthony Greencd41aea2013-01-10 17:25:45 -050097| X86 | FreeBSD | GCC |
Anthony Green10e77222013-02-10 08:47:26 -050098| X86 | GNU HURD | GCC |
Anthony Greencd41aea2013-01-10 17:25:45 -050099| X86 | Interix | GCC |
100| X86 | kFreeBSD | GCC |
101| X86 | Linux | GCC |
102| X86 | Mac OSX | GCC |
103| X86 | OpenBSD | GCC |
104| X86 | OS/2 | GCC |
105| X86 | Solaris | GCC |
106| X86 | Solaris | Oracle Solaris Studio C |
107| X86 | Windows/Cygwin | GCC |
108| X86 | Windows/MingW | GCC |
109| X86-64 | FreeBSD | GCC |
110| X86-64 | Linux | GCC |
111| X86-64 | Linux/x32 | GCC |
112| X86-64 | OpenBSD | GCC |
113| X86-64 | Solaris | Oracle Solaris Studio C |
Anthony Greenf920a012014-09-20 06:54:06 -0400114| X86-64 | Windows/Cygwin | GCC |
Anthony Greencd41aea2013-01-10 17:25:45 -0500115| X86-64 | Windows/MingW | GCC |
Jakub Kaszyckibfab4292016-04-01 21:42:41 +0200116| X86-64 | Mac OSX | GCC |
Anthony Green20cae322013-01-21 07:07:38 -0500117| Xtensa | Linux | GCC |
Anthony Greencd41aea2013-01-10 17:25:45 -0500118|-----------------+------------------+-------------------------|
Anthony Green2e7e03d2009-12-31 07:43:22 -0500119
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400120Please send additional platform test results to
Anthony Green0cfe60e2009-12-29 10:06:04 -0500121libffi-discuss@sourceware.org and feel free to update the wiki page
122above.
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400123
124Installing libffi
125=================
126
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400127First you must configure the distribution for your particular
128system. Go to the directory you wish to build libffi in and run the
129"configure" program found in the root directory of the libffi source
130distribution.
131
Josh Triplett35634db2014-03-15 18:11:16 -0700132If you're building libffi directly from version control, configure won't
133exist yet; run ./autogen.sh first.
134
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400135You may want to tell configure where to install the libffi library and
136header files. To do that, use the --prefix configure switch. Libffi
137will install under /usr/local by default.
138
139If you want to enable extra run-time debugging checks use the the
140--enable-debug configure switch. This is useful when your program dies
141mysteriously while using libffi.
142
143Another useful configure switch is --enable-purify-safety. Using this
144will add some extra code which will suppress certain warnings when you
145are using Purify with libffi. Only use this switch when using
146Purify, as it will slow down the library.
147
Anthony Greenff3cd682010-01-15 11:27:24 -0500148It's also possible to build libffi on Windows platforms with
149Microsoft's Visual C++ compiler. In this case, use the msvcc.sh
150wrapper script during configuration like so:
151
Ehsan Akhgarifb25cd02014-06-11 12:07:24 -0400152path/to/configure CC=path/to/msvcc.sh CXX=path/to/msvcc.sh LD=link CPP="cl -nologo -EP"
Anthony Green9dc9a292010-04-13 10:33:52 -0400153
Josh Triplettd74df8c2014-03-27 00:44:12 -0700154For 64-bit Windows builds, use CC="path/to/msvcc.sh -m64" and
155CXX="path/to/msvcc.sh -m64". You may also need to specify --build
156appropriately.
157
Ehsan Akhgarifb25cd02014-06-11 12:07:24 -0400158It is also possible to build libffi on Windows platforms with the LLVM
159project's clang-cl compiler, like below:
160
161path/to/configure CC="path/to/msvcc.sh -clang-cl" CXX="path/to/msvcc.sh -clang-cl" LD=link CPP="clang-cl -EP"
162
Josh Triplettd74df8c2014-03-27 00:44:12 -0700163When building with MSVC under a MingW environment, you may need to
164remove the line in configure that sets 'fix_srcfile_path' to a 'cygpath'
165command. ('cygpath' is not present in MingW, and is not required when
166using MingW-style paths.)
Anthony Greenff3cd682010-01-15 11:27:24 -0500167
Nicolas Lelongd330f192012-05-05 09:37:02 -0400168For iOS builds, the 'libffi.xcodeproj' Xcode project is available.
Anthony Greenf4983182011-02-09 06:26:46 -0500169
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400170Configure has many other options. Use "configure --help" to see them all.
171
172Once configure has finished, type "make". Note that you must be using
Anthony Green10e77222013-02-10 08:47:26 -0500173GNU make. You can ftp GNU make from ftp.gnu.org:/pub/gnu/make .
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400174
175To ensure that libffi is working as advertised, type "make check".
176This will require that you have DejaGNU installed.
177
178To install the library and header files, type "make install".
179
180
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400181History
182=======
183
Anthony Green98370732014-03-25 16:24:14 -0400184See the git log for details at http://github.com/atgreen/libffi.
Anthony Greenf7c0bc62009-12-25 01:22:11 -0500185
Anthony Green8d5debc2014-11-12 08:04:51 -05001864.0 TBD
187 New API in support of GO closures.
188
Anthony Green20562ac2014-11-12 07:00:59 -05001893.2.1 Nov-12-14
190 Build fix for non-iOS AArch64 targets.
191
Anthony Greenee826b92014-11-11 07:29:26 -05001923.2 Nov-11-14
193 Add C99 Complex Type support (currently only supported on
194 s390).
Anthony Greenb2ca59d2014-09-20 07:08:05 -0400195 Add support for PASCAL and REGISTER calling conventions on x86
196 Windows/Linux.
Anthony Greenc81a7052014-11-04 13:29:58 -0500197 Add OpenRISC and Cygwin-64 support.
Anthony Green69289c12014-05-31 08:54:08 -0400198 Bug fixes.
199
Anthony Green0403f332014-05-19 09:41:32 -04002003.1 May-19-14
Anthony Green6ae046c2013-11-30 21:06:51 -0500201 Add AArch64 (ARM64) iOS support.
Anthony Green484a7582013-11-30 21:06:51 -0500202 Add Nios II support.
Anthony Green3dc3f322013-12-05 16:23:25 -0500203 Add m88k and DEC VAX support.
Anthony Greenb61b4722014-03-16 09:45:55 -0400204 Add support for stdcall, thiscall, and fastcall on non-Windows
205 32-bit x86 targets such as Linux.
Anthony Green98370732014-03-25 16:24:14 -0400206 Various Android, MIPS N32, x86, FreeBSD and UltraSPARC IIi
207 fixes.
Josh Triplett03ca8802014-03-27 08:44:34 -0700208 Make the testsuite more robust: eliminate several spurious
209 failures, and respect the $CC and $CXX environment variables.
Anthony Green98370732014-03-25 16:24:14 -0400210 Archive off the manually maintained ChangeLog in favor of git
211 log.
Anthony Greenff062692013-10-08 06:32:18 -0400212
Anthony Greenf22ab3c2013-03-17 18:34:54 -04002133.0.13 Mar-17-13
Anthony Green2fb527a2013-03-16 07:46:38 -0400214 Add Meta support.
Anthony Green215763d2013-03-16 07:57:35 -0400215 Add missing Moxie bits.
Anthony Green2fb527a2013-03-16 07:46:38 -0400216 Fix stack alignment bug on 32-bit x86.
Anthony Green8a286f52013-03-16 08:01:19 -0400217 Build fix for m68000 targets.
Anthony Green4acf0052013-03-16 08:18:45 -0400218 Build fix for soft-float Power targets.
Anthony Green12b18862013-03-17 18:32:12 -0400219 Fix the install dir location for some platforms when building
220 with GCC (OS X, Solaris).
Anthony Greenf22ab3c2013-03-17 18:34:54 -0400221 Fix Cygwin regression.
Anthony Green2fb527a2013-03-16 07:46:38 -0400222
Anthony Greenf308faf2013-02-11 14:25:13 -05002233.0.12 Feb-11-13
224 Add Moxie support.
Anthony Greenbada2e32013-01-21 08:02:07 -0500225 Add AArch64 support.
Anthony Green048d2f42012-10-11 10:55:25 -0400226 Add Blackfin support.
Anthony Green9c00a3f2012-10-12 16:46:06 -0400227 Add TILE-Gx/TILEPro support.
Anthony Greenf308faf2013-02-11 14:25:13 -0500228 Add MicroBlaze support.
Anthony Green20cae322013-01-21 07:07:38 -0500229 Add Xtensa support.
Anthony Greene944b8c2012-10-30 14:06:09 -0400230 Add support for PaX enabled kernels with MPROTECT.
Anthony Green9742f912013-01-21 07:03:41 -0500231 Add support for native vendor compilers on
232 Solaris and AIX.
Anthony Green176aa9d2013-02-07 15:29:22 -0500233 Work around LLVM/GCC interoperability issue on x86_64.
Anthony Green09b23cf2012-04-27 08:29:48 -0400234
Anthony Greenff3d76f2012-04-11 23:16:48 -04002353.0.11 Apr-11-12
Anthony Green048d2f42012-10-11 10:55:25 -0400236 Lots of build fixes.
Anthony Green048d2f42012-10-11 10:55:25 -0400237 Add support for variadic functions (ffi_prep_cif_var).
Anthony Green964c5b92012-03-03 14:46:20 -0500238 Add Linux/x32 support.
Anthony Green59bb61a2012-04-06 08:26:14 -0400239 Add thiscall, fastcall and MSVC cdecl support on Windows.
Anthony Green048d2f42012-10-11 10:55:25 -0400240 Add Amiga and newer MacOS support.
Anthony Green59bb61a2012-04-06 08:26:14 -0400241 Add m68k FreeMiNT support.
Mike Lewisebb8e892012-04-06 20:02:08 -0400242 Integration with iOS' xcode build tools.
243 Fix Octeon and MC68881 support.
Anthony Greenafaf3382012-01-23 14:17:13 -0500244 Fix code pessimizations.
Anthony Greenee6696f2011-08-23 12:30:29 -0400245
Anthony Greenc6265c32011-08-23 10:31:33 -04002463.0.10 Aug-23-11
Anthony Greencbb062c2011-02-17 20:39:21 -0500247 Add support for Apple's iOS.
Anthony Green1fbf9dc2011-02-13 08:06:39 -0500248 Add support for ARM VFP ABI.
Anthony Green630b9c02011-02-09 06:24:23 -0500249 Add RTEMS support for MIPS and M68K.
Anthony Greenc6265c32011-08-23 10:31:33 -0400250 Fix instruction cache clearing problems on
251 ARM and SPARC.
Anthony Green2db72612010-11-21 10:50:56 -0500252 Fix the N64 build on mips-sgi-irix6.5.
Anthony Greencbb062c2011-02-17 20:39:21 -0500253 Enable builds with Microsoft's compiler.
254 Enable x86 builds with Oracle's Solaris compiler.
Anthony Greene2214f82011-02-08 19:22:56 -0500255 Fix support for calling code compiled with Oracle's Sparc
Anthony Greencbb062c2011-02-17 20:39:21 -0500256 Solaris compiler.
257 Testsuite fixes for Tru64 Unix.
Anthony Greenc6265c32011-08-23 10:31:33 -0400258 Additional platform support.
Anthony Green2db72612010-11-21 10:50:56 -0500259
Anthony Green2e7e03d2009-12-31 07:43:22 -05002603.0.9 Dec-31-09
Anthony Greenf7c0bc62009-12-25 01:22:11 -0500261 Add AVR32 and win64 ports. Add ARM softfp support.
262 Many fixes for AIX, Solaris, HP-UX, *BSD.
Anthony Green2e7e03d2009-12-31 07:43:22 -0500263 Several PowerPC and x86-64 bug fixes.
Anthony Green0cfe60e2009-12-29 10:06:04 -0500264 Build DLL for windows.
Anthony Greenf7c0bc62009-12-25 01:22:11 -0500265
2663.0.8 Dec-19-08
267 Add *BSD, BeOS, and PA-Linux support.
268
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002693.0.7 Nov-11-08
270 Fix for ppc FreeBSD.
271 (thanks to Andreas Tobler)
272
2733.0.6 Jul-17-08
274 Fix for closures on sh.
275 Mark the sh/sh64 stack as non-executable.
276 (both thanks to Kaz Kojima)
277
2783.0.5 Apr-3-08
279 Fix libffi.pc file.
280 Fix #define ARM for IcedTea users.
281 Fix x86 closure bug.
282
2833.0.4 Feb-24-08
284 Fix x86 OpenBSD configury.
285
2863.0.3 Feb-22-08
287 Enable x86 OpenBSD thanks to Thomas Heller, and
288 x86-64 FreeBSD thanks to Björn König and Andreas Tobler.
289 Clean up test instruction in README.
290
2913.0.2 Feb-21-08
292 Improved x86 FreeBSD support.
293 Thanks to Björn König.
294
2953.0.1 Feb-15-08
296 Fix instruction cache flushing bug on MIPS.
297 Thanks to David Daney.
298
2993.0.0 Feb-15-08
300 Many changes, mostly thanks to the GCC project.
301 Cygnus Solutions is now Red Hat.
302
303 [10 years go by...]
304
3051.20 Oct-5-98
306 Raffaele Sena produces ARM port.
307
3081.19 Oct-5-98
309 Fixed x86 long double and long long return support.
310 m68k bug fixes from Andreas Schwab.
311 Patch for DU assembler compatibility for the Alpha from Richard
312 Henderson.
313
3141.18 Apr-17-98
315 Bug fixes and MIPS configuration changes.
316
3171.17 Feb-24-98
318 Bug fixes and m68k port from Andreas Schwab. PowerPC port from
319 Geoffrey Keating. Various bug x86, Sparc and MIPS bug fixes.
320
3211.16 Feb-11-98
322 Richard Henderson produces Alpha port.
323
3241.15 Dec-4-97
325 Fixed an n32 ABI bug. New libtool, auto* support.
326
3271.14 May-13-97
328 libtool is now used to generate shared and static libraries.
329 Fixed a minor portability problem reported by Russ McManus
330 <mcmanr@eq.gs.com>.
331
3321.13 Dec-2-96
333 Added --enable-purify-safety to keep Purify from complaining
334 about certain low level code.
335 Sparc fix for calling functions with < 6 args.
336 Linux x86 a.out fix.
337
3381.12 Nov-22-96
339 Added missing ffi_type_void, needed for supporting void return
340 types. Fixed test case for non MIPS machines. Cygnus Support
341 is now Cygnus Solutions.
342
3431.11 Oct-30-96
344 Added notes about GNU make.
345
3461.10 Oct-29-96
347 Added configuration fix for non GNU compilers.
348
3491.09 Oct-29-96
350 Added --enable-debug configure switch. Clean-ups based on LCLint
351 feedback. ffi_mips.h is always installed. Many configuration
352 fixes. Fixed ffitest.c for sparc builds.
353
3541.08 Oct-15-96
355 Fixed n32 problem. Many clean-ups.
356
3571.07 Oct-14-96
358 Gordon Irlam rewrites v8.S again. Bug fixes.
359
3601.06 Oct-14-96
361 Gordon Irlam improved the sparc port.
362
3631.05 Oct-14-96
364 Interface changes based on feedback.
365
3661.04 Oct-11-96
367 Sparc port complete (modulo struct passing bug).
368
3691.03 Oct-10-96
370 Passing struct args, and returning struct values works for
371 all architectures/calling conventions. Expanded tests.
372
3731.02 Oct-9-96
374 Added SGI n32 support. Fixed bugs in both o32 and Linux support.
375 Added "make test".
376
3771.01 Oct-8-96
378 Fixed float passing bug in mips version. Restructured some
379 of the code. Builds cleanly with SGI tools.
380
3811.00 Oct-7-96
382 First release. No public announcement.
383
384
385Authors & Credits
386=================
387
Anthony Green666f3e72013-10-26 09:12:42 -0400388libffi was originally written by Anthony Green <green@moxielogic.com>.
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400389
390The developers of the GNU Compiler Collection project have made
391innumerable valuable contributions. See the ChangeLog file for
392details.
393
394Some of the ideas behind libffi were inspired by Gianni Mariani's free
395gencall library for Silicon Graphics machines.
396
397The closure mechanism was designed and implemented by Kresten Krab
398Thorup.
399
400Major processor architecture ports were contributed by the following
401developers:
402
Anthony Green58e8b662012-10-30 07:07:19 -0400403aarch64 Marcus Shawcroft, James Greenhalgh
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400404alpha Richard Henderson
405arm Raffaele Sena
Anthony Green70084e72012-10-12 23:55:06 -0400406blackfin Alexandre Keunecke I. de Mendonca
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400407cris Simon Posnjak, Hans-Peter Nilsson
408frv Anthony Green
409ia64 Hans Boehm
410m32r Kazuhiro Inaoka
411m68k Andreas Schwab
Anthony Green666f3e72013-10-26 09:12:42 -0400412m88k Miod Vallat
Anthony Greenaeb87192013-01-21 07:37:30 -0500413microblaze Nathan Rossi
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400414mips Anthony Green, Casey Marshall
415mips64 David Daney
Anthony Greenf308faf2013-02-11 14:25:13 -0500416moxie Anthony Green
Anthony Green666f3e72013-10-26 09:12:42 -0400417nios ii Sandra Loosemore
Anthony Greenee826b92014-11-11 07:29:26 -0500418openrisc Sebastian Macke
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400419pa Randolph Chung, Dave Anglin, Andreas Tobler
420powerpc Geoffrey Keating, Andreas Tobler,
421 David Edelsohn, John Hornkvist
422powerpc64 Jakub Jelinek
423s390 Gerhard Tonn, Ulrich Weigand
424sh Kaz Kojima
425sh64 Kaz Kojima
426sparc Anthony Green, Gordon Irlam
Anthony Green70084e72012-10-12 23:55:06 -0400427tile-gx/tilepro Walter Lee
Anthony Green666f3e72013-10-26 09:12:42 -0400428vax Miod Vallat
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400429x86 Anthony Green, Jon Beniston
430x86-64 Bo Thorsen
Anthony Green20cae322013-01-21 07:07:38 -0500431xtensa Chris Zankel
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400432
433Jesper Skov and Andrew Haley both did more than their fair share of
434stepping through the code and tracking down bugs.
435
436Thanks also to Tom Tromey for bug fixes, documentation and
437configuration help.
438
439Thanks to Jim Blandy, who provided some useful feedback on the libffi
440interface.
441
442Andreas Tobler has done a tremendous amount of work on the testsuite.
443
444Alex Oliva solved the executable page problem for SElinux.
445
446The list above is almost certainly incomplete and inaccurate. I'm
447happy to make corrections or additions upon request.
448
Anthony Green630b9c02011-02-09 06:24:23 -0500449If you have a problem, or have found a bug, please send a note to the
450author at green@moxielogic.com, or the project mailing list at
451libffi-discuss@sourceware.org.