14cffe588Sopenharmony_ci 24cffe588Sopenharmony_cilibffi-3.4.1 was released on June 28, 2021. Check the libffi web page 34cffe588Sopenharmony_cifor updates: <URL:http://sourceware.org/libffi/>. 44cffe588Sopenharmony_ci 54cffe588Sopenharmony_ci 64cffe588Sopenharmony_ciWhat is libffi? 74cffe588Sopenharmony_ci=============== 84cffe588Sopenharmony_ci 94cffe588Sopenharmony_ciCompilers for high level languages generate code that follow certain 104cffe588Sopenharmony_ciconventions. These conventions are necessary, in part, for separate 114cffe588Sopenharmony_cicompilation to work. One such convention is the "calling 124cffe588Sopenharmony_ciconvention". The "calling convention" is essentially a set of 134cffe588Sopenharmony_ciassumptions made by the compiler about where function arguments will 144cffe588Sopenharmony_cibe found on entry to a function. A "calling convention" also specifies 154cffe588Sopenharmony_ciwhere the return value for a function is found. 164cffe588Sopenharmony_ci 174cffe588Sopenharmony_ciSome programs may not know at the time of compilation what arguments 184cffe588Sopenharmony_ciare to be passed to a function. For instance, an interpreter may be 194cffe588Sopenharmony_citold at run-time about the number and types of arguments used to call 204cffe588Sopenharmony_cia given function. Libffi can be used in such programs to provide a 214cffe588Sopenharmony_cibridge from the interpreter program to compiled code. 224cffe588Sopenharmony_ci 234cffe588Sopenharmony_ciThe libffi library provides a portable, high level programming 244cffe588Sopenharmony_ciinterface to various calling conventions. This allows a programmer to 254cffe588Sopenharmony_cicall any function specified by a call interface description at run 264cffe588Sopenharmony_citime. 274cffe588Sopenharmony_ci 284cffe588Sopenharmony_ciFFI stands for Foreign Function Interface. A foreign function 294cffe588Sopenharmony_ciinterface is the popular name for the interface that allows code 304cffe588Sopenharmony_ciwritten in one language to call code written in another language. The 314cffe588Sopenharmony_cilibffi library really only provides the lowest, machine dependent 324cffe588Sopenharmony_cilayer of a fully featured foreign function interface. A layer must 334cffe588Sopenharmony_ciexist above libffi that handles type conversions for values passed 344cffe588Sopenharmony_cibetween the two languages. 354cffe588Sopenharmony_ci 364cffe588Sopenharmony_ci 374cffe588Sopenharmony_ciSupported Platforms 384cffe588Sopenharmony_ci=================== 394cffe588Sopenharmony_ci 404cffe588Sopenharmony_ciLibffi has been ported to many different platforms. 414cffe588Sopenharmony_ci 424cffe588Sopenharmony_ciAt the time of release, the following basic configurations have been 434cffe588Sopenharmony_citested: 444cffe588Sopenharmony_ci 454cffe588Sopenharmony_ci| Architecture | Operating System | Compiler | 464cffe588Sopenharmony_ci| --------------- | ---------------- | ----------------------- | 474cffe588Sopenharmony_ci| AArch64 (ARM64) | iOS | Clang | 484cffe588Sopenharmony_ci| AArch64 | Linux | GCC | 494cffe588Sopenharmony_ci| AArch64 | Windows | MSVC | 504cffe588Sopenharmony_ci| Alpha | Linux | GCC | 514cffe588Sopenharmony_ci| Alpha | Tru64 | GCC | 524cffe588Sopenharmony_ci| ARC | Linux | GCC | 534cffe588Sopenharmony_ci| ARM | Linux | GCC | 544cffe588Sopenharmony_ci| ARM | iOS | GCC | 554cffe588Sopenharmony_ci| ARM | Windows | MSVC | 564cffe588Sopenharmony_ci| AVR32 | Linux | GCC | 574cffe588Sopenharmony_ci| Blackfin | uClinux | GCC | 584cffe588Sopenharmony_ci| CSKY | Linux | GCC | 594cffe588Sopenharmony_ci| HPPA | HPUX | GCC | 604cffe588Sopenharmony_ci| KVX | Linux | GCC | 614cffe588Sopenharmony_ci| IA-64 | Linux | GCC | 624cffe588Sopenharmony_ci| M68K | FreeMiNT | GCC | 634cffe588Sopenharmony_ci| M68K | Linux | GCC | 644cffe588Sopenharmony_ci| M68K | RTEMS | GCC | 654cffe588Sopenharmony_ci| M88K | OpenBSD/mvme88k | GCC | 664cffe588Sopenharmony_ci| Meta | Linux | GCC | 674cffe588Sopenharmony_ci| MicroBlaze | Linux | GCC | 684cffe588Sopenharmony_ci| MIPS | IRIX | GCC | 694cffe588Sopenharmony_ci| MIPS | Linux | GCC | 704cffe588Sopenharmony_ci| MIPS | RTEMS | GCC | 714cffe588Sopenharmony_ci| MIPS64 | Linux | GCC | 724cffe588Sopenharmony_ci| Moxie | Bare metal | GCC | 734cffe588Sopenharmony_ci| Nios II | Linux | GCC | 744cffe588Sopenharmony_ci| OpenRISC | Linux | GCC | 754cffe588Sopenharmony_ci| PowerPC 32-bit | AIX | IBM XL C | 764cffe588Sopenharmony_ci| PowerPC 64-bit | AIX | IBM XL C | 774cffe588Sopenharmony_ci| PowerPC | AMIGA | GCC | 784cffe588Sopenharmony_ci| PowerPC | Linux | GCC | 794cffe588Sopenharmony_ci| PowerPC | Mac OSX | GCC | 804cffe588Sopenharmony_ci| PowerPC | FreeBSD | GCC | 814cffe588Sopenharmony_ci| PowerPC 64-bit | FreeBSD | GCC | 824cffe588Sopenharmony_ci| PowerPC 64-bit | Linux ELFv1 | GCC | 834cffe588Sopenharmony_ci| PowerPC 64-bit | Linux ELFv2 | GCC | 844cffe588Sopenharmony_ci| RISC-V 32-bit | Linux | GCC | 854cffe588Sopenharmony_ci| RISC-V 64-bit | Linux | GCC | 864cffe588Sopenharmony_ci| S390 | Linux | GCC | 874cffe588Sopenharmony_ci| S390X | Linux | GCC | 884cffe588Sopenharmony_ci| SPARC | Linux | GCC | 894cffe588Sopenharmony_ci| SPARC | Solaris | GCC | 904cffe588Sopenharmony_ci| SPARC | Solaris | Oracle Solaris Studio C | 914cffe588Sopenharmony_ci| SPARC64 | Linux | GCC | 924cffe588Sopenharmony_ci| SPARC64 | FreeBSD | GCC | 934cffe588Sopenharmony_ci| SPARC64 | Solaris | Oracle Solaris Studio C | 944cffe588Sopenharmony_ci| TILE-Gx/TILEPro | Linux | GCC | 954cffe588Sopenharmony_ci| VAX | OpenBSD/vax | GCC | 964cffe588Sopenharmony_ci| X86 | FreeBSD | GCC | 974cffe588Sopenharmony_ci| X86 | GNU HURD | GCC | 984cffe588Sopenharmony_ci| X86 | Interix | GCC | 994cffe588Sopenharmony_ci| X86 | kFreeBSD | GCC | 1004cffe588Sopenharmony_ci| X86 | Linux | GCC | 1014cffe588Sopenharmony_ci| X86 | OpenBSD | GCC | 1024cffe588Sopenharmony_ci| X86 | OS/2 | GCC | 1034cffe588Sopenharmony_ci| X86 | Solaris | GCC | 1044cffe588Sopenharmony_ci| X86 | Solaris | Oracle Solaris Studio C | 1054cffe588Sopenharmony_ci| X86 | Windows/Cygwin | GCC | 1064cffe588Sopenharmony_ci| X86 | Windows/MingW | GCC | 1074cffe588Sopenharmony_ci| X86-64 | FreeBSD | GCC | 1084cffe588Sopenharmony_ci| X86-64 | Linux | GCC | 1094cffe588Sopenharmony_ci| X86-64 | Linux/x32 | GCC | 1104cffe588Sopenharmony_ci| X86-64 | OpenBSD | GCC | 1114cffe588Sopenharmony_ci| X86-64 | Solaris | Oracle Solaris Studio C | 1124cffe588Sopenharmony_ci| X86-64 | Windows/Cygwin | GCC | 1134cffe588Sopenharmony_ci| X86-64 | Windows/MingW | GCC | 1144cffe588Sopenharmony_ci| X86-64 | Mac OSX | GCC | 1154cffe588Sopenharmony_ci| Xtensa | Linux | GCC | 1164cffe588Sopenharmony_ci 1174cffe588Sopenharmony_ciPlease send additional platform test results to 1184cffe588Sopenharmony_cilibffi-discuss@sourceware.org. 1194cffe588Sopenharmony_ci 1204cffe588Sopenharmony_ciInstalling libffi 1214cffe588Sopenharmony_ci================= 1224cffe588Sopenharmony_ci 1234cffe588Sopenharmony_ciFirst you must configure the distribution for your particular 1244cffe588Sopenharmony_cisystem. Go to the directory you wish to build libffi in and run the 1254cffe588Sopenharmony_ci"configure" program found in the root directory of the libffi source 1264cffe588Sopenharmony_cidistribution. Note that building libffi requires a C99 compatible 1274cffe588Sopenharmony_cicompiler. 1284cffe588Sopenharmony_ci 1294cffe588Sopenharmony_ciIf you're building libffi directly from git hosted sources, configure 1304cffe588Sopenharmony_ciwon't exist yet; run ./autogen.sh first. This will require that you 1314cffe588Sopenharmony_ciinstall autoconf, automake and libtool. 1324cffe588Sopenharmony_ci 1334cffe588Sopenharmony_ciYou may want to tell configure where to install the libffi library and 1344cffe588Sopenharmony_ciheader files. To do that, use the ``--prefix`` configure switch. Libffi 1354cffe588Sopenharmony_ciwill install under /usr/local by default. 1364cffe588Sopenharmony_ci 1374cffe588Sopenharmony_ciIf you want to enable extra run-time debugging checks use the the 1384cffe588Sopenharmony_ci``--enable-debug`` configure switch. This is useful when your program dies 1394cffe588Sopenharmony_cimysteriously while using libffi. 1404cffe588Sopenharmony_ci 1414cffe588Sopenharmony_ciAnother useful configure switch is ``--enable-purify-safety``. Using this 1424cffe588Sopenharmony_ciwill add some extra code which will suppress certain warnings when you 1434cffe588Sopenharmony_ciare using Purify with libffi. Only use this switch when using 1444cffe588Sopenharmony_ciPurify, as it will slow down the library. 1454cffe588Sopenharmony_ci 1464cffe588Sopenharmony_ciIf you don't want to build documentation, use the ``--disable-docs`` 1474cffe588Sopenharmony_ciconfigure switch. 1484cffe588Sopenharmony_ci 1494cffe588Sopenharmony_ciIt's also possible to build libffi on Windows platforms with 1504cffe588Sopenharmony_ciMicrosoft's Visual C++ compiler. In this case, use the msvcc.sh 1514cffe588Sopenharmony_ciwrapper script during configuration like so: 1524cffe588Sopenharmony_ci 1534cffe588Sopenharmony_ci path/to/configure CC=path/to/msvcc.sh CXX=path/to/msvcc.sh LD=link CPP="cl -nologo -EP" CPPFLAGS="-DFFI_BUILDING_DLL" 1544cffe588Sopenharmony_ci 1554cffe588Sopenharmony_ciFor 64-bit Windows builds, use ``CC="path/to/msvcc.sh -m64"`` and 1564cffe588Sopenharmony_ci``CXX="path/to/msvcc.sh -m64"``. You may also need to specify 1574cffe588Sopenharmony_ci``--build`` appropriately. 1584cffe588Sopenharmony_ci 1594cffe588Sopenharmony_ciIt is also possible to build libffi on Windows platforms with the LLVM 1604cffe588Sopenharmony_ciproject's clang-cl compiler, like below: 1614cffe588Sopenharmony_ci 1624cffe588Sopenharmony_ci path/to/configure CC="path/to/msvcc.sh -clang-cl" CXX="path/to/msvcc.sh -clang-cl" LD=link CPP="clang-cl -EP" 1634cffe588Sopenharmony_ci 1644cffe588Sopenharmony_ciWhen building with MSVC under a MingW environment, you may need to 1654cffe588Sopenharmony_ciremove the line in configure that sets 'fix_srcfile_path' to a 'cygpath' 1664cffe588Sopenharmony_cicommand. ('cygpath' is not present in MingW, and is not required when 1674cffe588Sopenharmony_ciusing MingW-style paths.) 1684cffe588Sopenharmony_ci 1694cffe588Sopenharmony_ciTo build static library for ARM64 with MSVC using visual studio solution, msvc_build folder have 1704cffe588Sopenharmony_ci aarch64/Ffi_staticLib.sln 1714cffe588Sopenharmony_ci required header files in aarch64/aarch64_include/ 1724cffe588Sopenharmony_ci 1734cffe588Sopenharmony_ci 1744cffe588Sopenharmony_ciSPARC Solaris builds require the use of the GNU assembler and linker. 1754cffe588Sopenharmony_ciPoint ``AS`` and ``LD`` environment variables at those tool prior to 1764cffe588Sopenharmony_ciconfiguration. 1774cffe588Sopenharmony_ci 1784cffe588Sopenharmony_ciFor iOS builds, the ``libffi.xcodeproj`` Xcode project is available. 1794cffe588Sopenharmony_ci 1804cffe588Sopenharmony_ciConfigure has many other options. Use ``configure --help`` to see them all. 1814cffe588Sopenharmony_ci 1824cffe588Sopenharmony_ciOnce configure has finished, type "make". Note that you must be using 1834cffe588Sopenharmony_ciGNU make. You can ftp GNU make from ftp.gnu.org:/pub/gnu/make . 1844cffe588Sopenharmony_ci 1854cffe588Sopenharmony_ciTo ensure that libffi is working as advertised, type "make check". 1864cffe588Sopenharmony_ciThis will require that you have DejaGNU installed. 1874cffe588Sopenharmony_ci 1884cffe588Sopenharmony_ciTo install the library and header files, type ``make install``. 1894cffe588Sopenharmony_ci 1904cffe588Sopenharmony_ci 1914cffe588Sopenharmony_ciHistory 1924cffe588Sopenharmony_ci======= 1934cffe588Sopenharmony_ci 1944cffe588Sopenharmony_ciSee the git log for details at http://github.com/libffi/libffi. 1954cffe588Sopenharmony_ci 1964cffe588Sopenharmony_ci 3.4.2 Jun-28-21 1974cffe588Sopenharmony_ci Add static trampoline support for Linux on x86_64 and ARM64. 1984cffe588Sopenharmony_ci Add support for Alibaba's CSKY architecture. 1994cffe588Sopenharmony_ci Add support for Kalray's KVX architecture. 2004cffe588Sopenharmony_ci Add support for Intel Control-flow Enforcement Technology (CET). 2014cffe588Sopenharmony_ci Add support for ARM Pointer Authentication (PA). 2024cffe588Sopenharmony_ci Fix 32-bit PPC regression. 2034cffe588Sopenharmony_ci Fix MIPS soft-float problem. 2044cffe588Sopenharmony_ci Enable tmpdir override with the $LIBFFI_TMPDIR environment variable. 2054cffe588Sopenharmony_ci Enable compatibility with MSVC runtime stack checking. 2064cffe588Sopenharmony_ci Reject float and small integer argument in ffi_prep_cif_var(). 2074cffe588Sopenharmony_ci Callers must promote these types themselves. 2084cffe588Sopenharmony_ci 2094cffe588Sopenharmony_ci 3.3 Nov-23-19 2104cffe588Sopenharmony_ci Add RISC-V support. 2114cffe588Sopenharmony_ci New API in support of GO closures. 2124cffe588Sopenharmony_ci Add IEEE754 binary128 long double support for 64-bit Power 2134cffe588Sopenharmony_ci Default to Microsoft's 64 bit long double ABI with Visual C++. 2144cffe588Sopenharmony_ci GNU compiler uses 80 bits (128 in memory) FFI_GNUW64 ABI. 2154cffe588Sopenharmony_ci Add Windows on ARM64 (WOA) support. 2164cffe588Sopenharmony_ci Add Windows 32-bit ARM support. 2174cffe588Sopenharmony_ci Raw java (gcj) API deprecated. 2184cffe588Sopenharmony_ci Add pre-built PDF documentation to source distribution. 2194cffe588Sopenharmony_ci Many new test cases and bug fixes. 2204cffe588Sopenharmony_ci 2214cffe588Sopenharmony_ci 3.2.1 Nov-12-14 2224cffe588Sopenharmony_ci Build fix for non-iOS AArch64 targets. 2234cffe588Sopenharmony_ci 2244cffe588Sopenharmony_ci 3.2 Nov-11-14 2254cffe588Sopenharmony_ci Add C99 Complex Type support (currently only supported on 2264cffe588Sopenharmony_ci s390). 2274cffe588Sopenharmony_ci Add support for PASCAL and REGISTER calling conventions on x86 2284cffe588Sopenharmony_ci Windows/Linux. 2294cffe588Sopenharmony_ci Add OpenRISC and Cygwin-64 support. 2304cffe588Sopenharmony_ci Bug fixes. 2314cffe588Sopenharmony_ci 2324cffe588Sopenharmony_ci 3.1 May-19-14 2334cffe588Sopenharmony_ci Add AArch64 (ARM64) iOS support. 2344cffe588Sopenharmony_ci Add Nios II support. 2354cffe588Sopenharmony_ci Add m88k and DEC VAX support. 2364cffe588Sopenharmony_ci Add support for stdcall, thiscall, and fastcall on non-Windows 2374cffe588Sopenharmony_ci 32-bit x86 targets such as Linux. 2384cffe588Sopenharmony_ci Various Android, MIPS N32, x86, FreeBSD and UltraSPARC IIi 2394cffe588Sopenharmony_ci fixes. 2404cffe588Sopenharmony_ci Make the testsuite more robust: eliminate several spurious 2414cffe588Sopenharmony_ci failures, and respect the $CC and $CXX environment variables. 2424cffe588Sopenharmony_ci Archive off the manually maintained ChangeLog in favor of git 2434cffe588Sopenharmony_ci log. 2444cffe588Sopenharmony_ci 2454cffe588Sopenharmony_ci 3.0.13 Mar-17-13 2464cffe588Sopenharmony_ci Add Meta support. 2474cffe588Sopenharmony_ci Add missing Moxie bits. 2484cffe588Sopenharmony_ci Fix stack alignment bug on 32-bit x86. 2494cffe588Sopenharmony_ci Build fix for m68000 targets. 2504cffe588Sopenharmony_ci Build fix for soft-float Power targets. 2514cffe588Sopenharmony_ci Fix the install dir location for some platforms when building 2524cffe588Sopenharmony_ci with GCC (OS X, Solaris). 2534cffe588Sopenharmony_ci Fix Cygwin regression. 2544cffe588Sopenharmony_ci 2554cffe588Sopenharmony_ci 3.0.12 Feb-11-13 2564cffe588Sopenharmony_ci Add Moxie support. 2574cffe588Sopenharmony_ci Add AArch64 support. 2584cffe588Sopenharmony_ci Add Blackfin support. 2594cffe588Sopenharmony_ci Add TILE-Gx/TILEPro support. 2604cffe588Sopenharmony_ci Add MicroBlaze support. 2614cffe588Sopenharmony_ci Add Xtensa support. 2624cffe588Sopenharmony_ci Add support for PaX enabled kernels with MPROTECT. 2634cffe588Sopenharmony_ci Add support for native vendor compilers on 2644cffe588Sopenharmony_ci Solaris and AIX. 2654cffe588Sopenharmony_ci Work around LLVM/GCC interoperability issue on x86_64. 2664cffe588Sopenharmony_ci 2674cffe588Sopenharmony_ci 3.0.11 Apr-11-12 2684cffe588Sopenharmony_ci Lots of build fixes. 2694cffe588Sopenharmony_ci Add support for variadic functions (ffi_prep_cif_var). 2704cffe588Sopenharmony_ci Add Linux/x32 support. 2714cffe588Sopenharmony_ci Add thiscall, fastcall and MSVC cdecl support on Windows. 2724cffe588Sopenharmony_ci Add Amiga and newer MacOS support. 2734cffe588Sopenharmony_ci Add m68k FreeMiNT support. 2744cffe588Sopenharmony_ci Integration with iOS' xcode build tools. 2754cffe588Sopenharmony_ci Fix Octeon and MC68881 support. 2764cffe588Sopenharmony_ci Fix code pessimizations. 2774cffe588Sopenharmony_ci 2784cffe588Sopenharmony_ci 3.0.10 Aug-23-11 2794cffe588Sopenharmony_ci Add support for Apple's iOS. 2804cffe588Sopenharmony_ci Add support for ARM VFP ABI. 2814cffe588Sopenharmony_ci Add RTEMS support for MIPS and M68K. 2824cffe588Sopenharmony_ci Fix instruction cache clearing problems on 2834cffe588Sopenharmony_ci ARM and SPARC. 2844cffe588Sopenharmony_ci Fix the N64 build on mips-sgi-irix6.5. 2854cffe588Sopenharmony_ci Enable builds with Microsoft's compiler. 2864cffe588Sopenharmony_ci Enable x86 builds with Oracle's Solaris compiler. 2874cffe588Sopenharmony_ci Fix support for calling code compiled with Oracle's Sparc 2884cffe588Sopenharmony_ci Solaris compiler. 2894cffe588Sopenharmony_ci Testsuite fixes for Tru64 Unix. 2904cffe588Sopenharmony_ci Additional platform support. 2914cffe588Sopenharmony_ci 2924cffe588Sopenharmony_ci 3.0.9 Dec-31-09 2934cffe588Sopenharmony_ci Add AVR32 and win64 ports. Add ARM softfp support. 2944cffe588Sopenharmony_ci Many fixes for AIX, Solaris, HP-UX, *BSD. 2954cffe588Sopenharmony_ci Several PowerPC and x86-64 bug fixes. 2964cffe588Sopenharmony_ci Build DLL for windows. 2974cffe588Sopenharmony_ci 2984cffe588Sopenharmony_ci 3.0.8 Dec-19-08 2994cffe588Sopenharmony_ci Add *BSD, BeOS, and PA-Linux support. 3004cffe588Sopenharmony_ci 3014cffe588Sopenharmony_ci 3.0.7 Nov-11-08 3024cffe588Sopenharmony_ci Fix for ppc FreeBSD. 3034cffe588Sopenharmony_ci (thanks to Andreas Tobler) 3044cffe588Sopenharmony_ci 3054cffe588Sopenharmony_ci 3.0.6 Jul-17-08 3064cffe588Sopenharmony_ci Fix for closures on sh. 3074cffe588Sopenharmony_ci Mark the sh/sh64 stack as non-executable. 3084cffe588Sopenharmony_ci (both thanks to Kaz Kojima) 3094cffe588Sopenharmony_ci 3104cffe588Sopenharmony_ci 3.0.5 Apr-3-08 3114cffe588Sopenharmony_ci Fix libffi.pc file. 3124cffe588Sopenharmony_ci Fix #define ARM for IcedTea users. 3134cffe588Sopenharmony_ci Fix x86 closure bug. 3144cffe588Sopenharmony_ci 3154cffe588Sopenharmony_ci 3.0.4 Feb-24-08 3164cffe588Sopenharmony_ci Fix x86 OpenBSD configury. 3174cffe588Sopenharmony_ci 3184cffe588Sopenharmony_ci 3.0.3 Feb-22-08 3194cffe588Sopenharmony_ci Enable x86 OpenBSD thanks to Thomas Heller, and 3204cffe588Sopenharmony_ci x86-64 FreeBSD thanks to Björn König and Andreas Tobler. 3214cffe588Sopenharmony_ci Clean up test instruction in README. 3224cffe588Sopenharmony_ci 3234cffe588Sopenharmony_ci 3.0.2 Feb-21-08 3244cffe588Sopenharmony_ci Improved x86 FreeBSD support. 3254cffe588Sopenharmony_ci Thanks to Björn König. 3264cffe588Sopenharmony_ci 3274cffe588Sopenharmony_ci 3.0.1 Feb-15-08 3284cffe588Sopenharmony_ci Fix instruction cache flushing bug on MIPS. 3294cffe588Sopenharmony_ci Thanks to David Daney. 3304cffe588Sopenharmony_ci 3314cffe588Sopenharmony_ci 3.0.0 Feb-15-08 3324cffe588Sopenharmony_ci Many changes, mostly thanks to the GCC project. 3334cffe588Sopenharmony_ci Cygnus Solutions is now Red Hat. 3344cffe588Sopenharmony_ci 3354cffe588Sopenharmony_ci [10 years go by...] 3364cffe588Sopenharmony_ci 3374cffe588Sopenharmony_ci 1.20 Oct-5-98 3384cffe588Sopenharmony_ci Raffaele Sena produces ARM port. 3394cffe588Sopenharmony_ci 3404cffe588Sopenharmony_ci 1.19 Oct-5-98 3414cffe588Sopenharmony_ci Fixed x86 long double and long long return support. 3424cffe588Sopenharmony_ci m68k bug fixes from Andreas Schwab. 3434cffe588Sopenharmony_ci Patch for DU assembler compatibility for the Alpha from Richard 3444cffe588Sopenharmony_ci Henderson. 3454cffe588Sopenharmony_ci 3464cffe588Sopenharmony_ci 1.18 Apr-17-98 3474cffe588Sopenharmony_ci Bug fixes and MIPS configuration changes. 3484cffe588Sopenharmony_ci 3494cffe588Sopenharmony_ci 1.17 Feb-24-98 3504cffe588Sopenharmony_ci Bug fixes and m68k port from Andreas Schwab. PowerPC port from 3514cffe588Sopenharmony_ci Geoffrey Keating. Various bug x86, Sparc and MIPS bug fixes. 3524cffe588Sopenharmony_ci 3534cffe588Sopenharmony_ci 1.16 Feb-11-98 3544cffe588Sopenharmony_ci Richard Henderson produces Alpha port. 3554cffe588Sopenharmony_ci 3564cffe588Sopenharmony_ci 1.15 Dec-4-97 3574cffe588Sopenharmony_ci Fixed an n32 ABI bug. New libtool, auto* support. 3584cffe588Sopenharmony_ci 3594cffe588Sopenharmony_ci 1.14 May-13-97 3604cffe588Sopenharmony_ci libtool is now used to generate shared and static libraries. 3614cffe588Sopenharmony_ci Fixed a minor portability problem reported by Russ McManus 3624cffe588Sopenharmony_ci <mcmanr@eq.gs.com>. 3634cffe588Sopenharmony_ci 3644cffe588Sopenharmony_ci 1.13 Dec-2-96 3654cffe588Sopenharmony_ci Added --enable-purify-safety to keep Purify from complaining 3664cffe588Sopenharmony_ci about certain low level code. 3674cffe588Sopenharmony_ci Sparc fix for calling functions with < 6 args. 3684cffe588Sopenharmony_ci Linux x86 a.out fix. 3694cffe588Sopenharmony_ci 3704cffe588Sopenharmony_ci 1.12 Nov-22-96 3714cffe588Sopenharmony_ci Added missing ffi_type_void, needed for supporting void return 3724cffe588Sopenharmony_ci types. Fixed test case for non MIPS machines. Cygnus Support 3734cffe588Sopenharmony_ci is now Cygnus Solutions. 3744cffe588Sopenharmony_ci 3754cffe588Sopenharmony_ci 1.11 Oct-30-96 3764cffe588Sopenharmony_ci Added notes about GNU make. 3774cffe588Sopenharmony_ci 3784cffe588Sopenharmony_ci 1.10 Oct-29-96 3794cffe588Sopenharmony_ci Added configuration fix for non GNU compilers. 3804cffe588Sopenharmony_ci 3814cffe588Sopenharmony_ci 1.09 Oct-29-96 3824cffe588Sopenharmony_ci Added --enable-debug configure switch. Clean-ups based on LCLint 3834cffe588Sopenharmony_ci feedback. ffi_mips.h is always installed. Many configuration 3844cffe588Sopenharmony_ci fixes. Fixed ffitest.c for sparc builds. 3854cffe588Sopenharmony_ci 3864cffe588Sopenharmony_ci 1.08 Oct-15-96 3874cffe588Sopenharmony_ci Fixed n32 problem. Many clean-ups. 3884cffe588Sopenharmony_ci 3894cffe588Sopenharmony_ci 1.07 Oct-14-96 3904cffe588Sopenharmony_ci Gordon Irlam rewrites v8.S again. Bug fixes. 3914cffe588Sopenharmony_ci 3924cffe588Sopenharmony_ci 1.06 Oct-14-96 3934cffe588Sopenharmony_ci Gordon Irlam improved the sparc port. 3944cffe588Sopenharmony_ci 3954cffe588Sopenharmony_ci 1.05 Oct-14-96 3964cffe588Sopenharmony_ci Interface changes based on feedback. 3974cffe588Sopenharmony_ci 3984cffe588Sopenharmony_ci 1.04 Oct-11-96 3994cffe588Sopenharmony_ci Sparc port complete (modulo struct passing bug). 4004cffe588Sopenharmony_ci 4014cffe588Sopenharmony_ci 1.03 Oct-10-96 4024cffe588Sopenharmony_ci Passing struct args, and returning struct values works for 4034cffe588Sopenharmony_ci all architectures/calling conventions. Expanded tests. 4044cffe588Sopenharmony_ci 4054cffe588Sopenharmony_ci 1.02 Oct-9-96 4064cffe588Sopenharmony_ci Added SGI n32 support. Fixed bugs in both o32 and Linux support. 4074cffe588Sopenharmony_ci Added "make test". 4084cffe588Sopenharmony_ci 4094cffe588Sopenharmony_ci 1.01 Oct-8-96 4104cffe588Sopenharmony_ci Fixed float passing bug in mips version. Restructured some 4114cffe588Sopenharmony_ci of the code. Builds cleanly with SGI tools. 4124cffe588Sopenharmony_ci 4134cffe588Sopenharmony_ci 1.00 Oct-7-96 4144cffe588Sopenharmony_ci First release. No public announcement. 4154cffe588Sopenharmony_ci 4164cffe588Sopenharmony_ciAuthors & Credits 4174cffe588Sopenharmony_ci================= 4184cffe588Sopenharmony_ci 4194cffe588Sopenharmony_cilibffi was originally written by Anthony Green <green@moxielogic.com>. 4204cffe588Sopenharmony_ci 4214cffe588Sopenharmony_ciThe developers of the GNU Compiler Collection project have made 4224cffe588Sopenharmony_ciinnumerable valuable contributions. See the ChangeLog file for 4234cffe588Sopenharmony_cidetails. 4244cffe588Sopenharmony_ci 4254cffe588Sopenharmony_ciSome of the ideas behind libffi were inspired by Gianni Mariani's free 4264cffe588Sopenharmony_cigencall library for Silicon Graphics machines. 4274cffe588Sopenharmony_ci 4284cffe588Sopenharmony_ciThe closure mechanism was designed and implemented by Kresten Krab 4294cffe588Sopenharmony_ciThorup. 4304cffe588Sopenharmony_ci 4314cffe588Sopenharmony_ciMajor processor architecture ports were contributed by the following 4324cffe588Sopenharmony_cidevelopers: 4334cffe588Sopenharmony_ci 4344cffe588Sopenharmony_ci aarch64 Marcus Shawcroft, James Greenhalgh 4354cffe588Sopenharmony_ci alpha Richard Henderson 4364cffe588Sopenharmony_ci arc Hackers at Synopsis 4374cffe588Sopenharmony_ci arm Raffaele Sena 4384cffe588Sopenharmony_ci avr32 Bradley Smith 4394cffe588Sopenharmony_ci blackfin Alexandre Keunecke I. de Mendonca 4404cffe588Sopenharmony_ci cris Simon Posnjak, Hans-Peter Nilsson 4414cffe588Sopenharmony_ci csky Ma Jun, Zhang Wenmeng 4424cffe588Sopenharmony_ci frv Anthony Green 4434cffe588Sopenharmony_ci ia64 Hans Boehm 4444cffe588Sopenharmony_ci kvx Yann Sionneau 4454cffe588Sopenharmony_ci m32r Kazuhiro Inaoka 4464cffe588Sopenharmony_ci m68k Andreas Schwab 4474cffe588Sopenharmony_ci m88k Miod Vallat 4484cffe588Sopenharmony_ci metag Hackers at Imagination Technologies 4494cffe588Sopenharmony_ci microblaze Nathan Rossi 4504cffe588Sopenharmony_ci mips Anthony Green, Casey Marshall 4514cffe588Sopenharmony_ci mips64 David Daney 4524cffe588Sopenharmony_ci moxie Anthony Green 4534cffe588Sopenharmony_ci nios ii Sandra Loosemore 4544cffe588Sopenharmony_ci openrisc Sebastian Macke 4554cffe588Sopenharmony_ci pa Randolph Chung, Dave Anglin, Andreas Tobler 4564cffe588Sopenharmony_ci powerpc Geoffrey Keating, Andreas Tobler, 4574cffe588Sopenharmony_ci David Edelsohn, John Hornkvist 4584cffe588Sopenharmony_ci powerpc64 Jakub Jelinek 4594cffe588Sopenharmony_ci riscv Michael Knyszek, Andrew Waterman, Stef O'Rear 4604cffe588Sopenharmony_ci s390 Gerhard Tonn, Ulrich Weigand 4614cffe588Sopenharmony_ci sh Kaz Kojima 4624cffe588Sopenharmony_ci sh64 Kaz Kojima 4634cffe588Sopenharmony_ci sparc Anthony Green, Gordon Irlam 4644cffe588Sopenharmony_ci tile-gx/tilepro Walter Lee 4654cffe588Sopenharmony_ci vax Miod Vallat 4664cffe588Sopenharmony_ci x86 Anthony Green, Jon Beniston 4674cffe588Sopenharmony_ci x86-64 Bo Thorsen 4684cffe588Sopenharmony_ci xtensa Chris Zankel 4694cffe588Sopenharmony_ci 4704cffe588Sopenharmony_ciJesper Skov and Andrew Haley both did more than their fair share of 4714cffe588Sopenharmony_cistepping through the code and tracking down bugs. 4724cffe588Sopenharmony_ci 4734cffe588Sopenharmony_ciThanks also to Tom Tromey for bug fixes, documentation and 4744cffe588Sopenharmony_ciconfiguration help. 4754cffe588Sopenharmony_ci 4764cffe588Sopenharmony_ciThanks to Jim Blandy, who provided some useful feedback on the libffi 4774cffe588Sopenharmony_ciinterface. 4784cffe588Sopenharmony_ci 4794cffe588Sopenharmony_ciAndreas Tobler has done a tremendous amount of work on the testsuite. 4804cffe588Sopenharmony_ci 4814cffe588Sopenharmony_ciAlex Oliva solved the executable page problem for SElinux. 4824cffe588Sopenharmony_ci 4834cffe588Sopenharmony_ciThe list above is almost certainly incomplete and inaccurate. I'm 4844cffe588Sopenharmony_cihappy to make corrections or additions upon request. 4854cffe588Sopenharmony_ci 4864cffe588Sopenharmony_ciIf you have a problem, or have found a bug, please file an issue on 4874cffe588Sopenharmony_ciour issue tracker at https://github.com/libffi/libffi/issues. 4884cffe588Sopenharmony_ci 4894cffe588Sopenharmony_ciThe author can be reached at green@moxielogic.com. 4904cffe588Sopenharmony_ci 4914cffe588Sopenharmony_ciTo subscribe/unsubscribe to our mailing lists, visit: 4924cffe588Sopenharmony_cihttps://sourceware.org/mailman/listinfo/libffi-announce 4934cffe588Sopenharmony_cihttps://sourceware.org/mailman/listinfo/libffi-discuss 494