commit f24180be1367f942824365b131ae894b9c769c7d
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Oct 23 20:17:29 2022 -0400

    Update to version 3.4.4

commit 848052fabb207d6f56485c8c2c3509eddecbe828
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Oct 23 11:25:10 2022 -0400

    More aarch64 fixes

commit af0f14cd6d932bd1c2f7c39c01e2df3b0ad19ea9
Author: Icecream95 <the.real.icecream95@gmail.com>
Date:   Mon Oct 24 04:08:10 2022 +1300

    Fix types of temporary variables in aarch64 extend_integer_type (#745)
    
    Fixes truncated values in weston-info output.

commit f7233db2a781b43e419a30edbec7639f74fa2a00
Author: musvaage <112724366+musvaage@users.noreply.github.com>
Date:   Mon Oct 17 17:26:17 2022 -0500

    typos (#742)

commit 45e492952e9f984a105ab281fb9433a4bbc12146
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Oct 16 12:41:56 2022 -0400

    Add 32-bit cygwin test

commit 93cfb655200f34ab1b2b7d8955291c457b91ee9f
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Oct 10 14:32:35 2022 -0400

    Correction for older compilers

commit 77a0fb82b53087647a12334c6ddd590ea6215199
Author: Andreas Schwab <schwab@linux-m68k.org>
Date:   Mon Oct 10 17:59:04 2022 +0200

    Flush output before aborting (#740)
    
    Co-authored-by: Andreas Schwab <schwab@suse.de>

commit 3874fd9865eef72a5cf5a761781b51f8db9fa267
Author: Andreas Schwab <schwab@linux-m68k.org>
Date:   Mon Oct 10 17:58:48 2022 +0200

    Fix strict aliasing problem in aarch64 ffi_call (#739)
    
    The assignment a = &dest in ffi_call_int may be moved after the call to
    extend_integer_type because that function accesses the assigned value with
    a different type.
    
    Co-authored-by: Andreas Schwab <schwab@suse.de>

commit 4b0c358e28fae22164bf0d423f183dfed8a1ba10
Author: Andreas Schwab <schwab@linux-m68k.org>
Date:   Mon Oct 10 17:57:47 2022 +0200

    riscv: make copies of structs passed by reference (#738)
    
    Co-authored-by: Andreas Schwab <schwab@suse.de>

commit c163d93ac032a101cda1818855d681430f7af89a
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Oct 8 18:35:38 2022 -0400

    Add gcc-12 testing for aarch64 linux

commit 62fd1f218be35976858a9f3a0b36fe0d38146bc9
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Oct 2 13:03:37 2022 -0400

    Tweak quotes

commit e1d1b094d31dbf97bd53c09736be97e1e9812d6a
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Sep 28 10:16:45 2022 -0400

    Add .

commit b45f68949d7d1b705eb5e26f58a09972ad70a9c4
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Sep 28 10:16:01 2022 -0400

    Update README for 3.4.4.

commit 817a43fbc1d6d1c702c492e926f158b17ae988e4
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Sep 28 09:05:45 2022 -0400

    Revert to previous cfi check. (#735)

commit 963c4a969326192a2a0ad536d3943f21dbbb0eaa
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Sep 27 22:05:42 2022 -0400

    Remove nested comments

commit e9e44157526c00bfd1142175ed6a7eb936ea0ede
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Sep 27 21:25:30 2022 -0400

    Don't tweak path

commit 4594dcc98770b4fa60fce313abf557f090f8a0fd
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Sep 27 21:05:26 2022 -0400

    Fix find

commit fe68a7b998329f471c3c0c5726073b9cb1a5a126
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Sep 27 20:29:17 2022 -0400

    Locate tools

commit cfb3f4c255cda534d1dc5de6a31cff70f02f9d69
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Sep 27 20:13:42 2022 -0400

    Use cross tools for Windows

commit ae544e0043079d778fdf0e16408db3b7a6d723bd
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Sep 27 18:23:06 2022 -0400

    Fix shell

commit b8d849bd85294253787bbe1838de354ad2f54201
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Sep 27 17:58:31 2022 -0400

    Find ms tools

commit 9785eee066782d7575023f94b64402963b55aa8c
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Sep 27 17:39:44 2022 -0400

    32- and 64-bit Windows

commit 1421717effc7b5052e3c26e2b715a83a8a61355c
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Sep 27 08:13:17 2022 -0400

    Add "lto" to triple to identify lto builds

commit 425acd4c2f217b00868ec1577c20b73de032c114
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Sep 27 07:57:37 2022 -0400

    Try aarch64 linux with -flto

commit c4261a0588fa997837e44f8417fc8577b37cd461
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 26 16:45:00 2022 -0400

    Show compiler version

commit a1467200c36ce80dacb8d9d0d50049765809b6f4
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 26 11:41:48 2022 -0400

    Never link pthread for android

commit 5ce26a0e03eacb483709189e8cbb05509fa68612
Author: Frederik Seiffert <frederik@seiffert.org>
Date:   Mon Sep 26 13:43:40 2022 +0200

    CI: add Android builds (#732)

commit 55bcc47717bb0f9c5276a45710d757cda7a61f8e
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 24 22:03:52 2022 -0400

    Test idea borrowed from cpython

commit a2473cde0a02c096dc3e0b57f0cb73f598765570
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 24 21:41:02 2022 -0400

    or1k: All struct args are passed in memory

commit f93224d38662a8cdc33ca56fe6f2d5650a86d690
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 24 21:38:57 2022 -0400

    moxie: All struct args are passed in memory

commit e79f19489bb294ce60bef5cdba5e56c3e7d84382
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 24 17:11:30 2022 -0400

    Add test case transcribed from cpython

commit ab96038772ec4f4ccfaf49d621cd20f58742c401
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 19 19:42:35 2022 -0400

    Set host triplet for native builds

commit a6fc81653d6ce649a6bc29675baa112c68a21df0
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 19 19:25:09 2022 -0400

    Update job names

commit 6b7fb6ce9eb4751ed3179de256566971c9d46cb7
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 19 18:23:42 2022 -0400

    Give better names to CI workflows

commit f0675ab7e85ca31095b51db5a5c955f1005240cb
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 19 17:30:51 2022 -0400

    Update version to 3.4.4-experimental

commit e3eaa609882fbcffb6c1b21270b6ff46fb57699f
Author: Hans <h-c-mueller@users.noreply.github.com>
Date:   Mon Sep 19 23:26:59 2022 +0200

    Suppress error console output duing configure in case not an ELF file (#729)
    
    On Cygwin, MSYS and MinGW readelf is available, but files generated are no
    ELF files. This results in an Error output on console:
    'checking whether .eh_frame section should be read-only... readelf: Error: Not an ELF file - it has the wrong magic bytes at the start
    yes'
    With this patch the error output is suppressed resulting in only
    'checking whether .eh_frame section should be read-only... yes'
    Setting of related variables is not changed.
    
    Co-authored-by: Hannes Müller <>

commit 84817695eab13c282436fca278bde2384ca955e5
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 19 13:31:46 2022 -0400

    Fix typo

commit 53338d2bbf547682b2461a6e4199276e24ec5c85
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 19 13:07:50 2022 -0400

    Update version

commit 0bd41b75df49f002f3fee9f4d5df225d742d3f1b
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 19 12:26:05 2022 -0400

    Update libtool version

commit 9b1dd8f2d5af8c76d120ffd566bf3c821580c96c
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 19 12:22:04 2022 -0400

    Update version to 3.4.3

commit 0a769ccc0f7a4a7e3e76a79b61c28341fc47e3be
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 19 08:17:15 2022 -0400

    Update release dates

commit f26b56e1c547d2b4d8c9303275ecea47b5936184
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 19 08:15:22 2022 -0400

    Add new files for distribution

commit b801b54b667340867441e922c14230a93832c8e2
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 19 06:49:32 2022 -0400

    Mention AIX with GCC

commit ff34df233c863371912881516eae039f850fcad6
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 19 06:45:19 2022 -0400

    Update comment about platform support

commit 598ea692b81ac8116bd9907d2b498c16fc92bde7
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 19 06:43:41 2022 -0400

    Clean ups, preparing for new release

commit fc6b939066f211b99eed3c8111e446ec95d51ca6
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 19 06:42:29 2022 -0400

    Standardize temp exec file creation

commit 4c2984c43fbb3db8e65b2b5702b27944eb0ed343
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Sep 18 15:06:57 2022 -0400

    Handle win32 ABIs for struct return

commit b05dc51bbe9aef6fcac66a8e68b59472bfaff126
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Sep 18 13:03:10 2022 -0400

    Debug x86

commit cafdb8377a8be2eadac05c318fae9ef6786c36c2
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Sep 18 12:05:12 2022 -0400

    Revert

commit acf0ce9e9b0bcd73d39f599a53e9924ba74c13c1
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Sep 18 11:04:54 2022 -0400

    Add test case

commit b49308eaac7288e01a36894598fb62bfaf61b238
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Sep 18 08:26:23 2022 -0400

    Add missing ABI_ATTR

commit 735e7be4fb2a0401a9ca66cc64004b8b3418feb3
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Sep 18 08:21:34 2022 -0400

    X86 is never defined.

commit ee22ecbd11f52f8de1adbb2a6561aee2125a576a
Author: Hans <h-c-mueller@users.noreply.github.com>
Date:   Sun Sep 18 01:56:25 2022 +0200

    Add MSYS configuration files (#728)
    
    * Add MSYS configuration files
    
    MSYS behaves very similiar to Cygwin, e.g. also __CYGWIN__ is defined.
    Now 'make check' passes on MSYS without extra patches.
    
    * Fix warning extra tokens at end of #endif in closures.c
    
    Extra tokens converted into a comment. Also nearby indentations corrected.
    
    * Fix missing prototype warning mkostemp() on Cygwin
    
    Cygwin requires also _GNU_SOURCE to be defined to enable mkostemp() prototype.
    
    * Fix warning label ‘out’ defined but not used in ffi functions
    
    Define same preprocessor conditions for goto and label visibility.
    
    * Fix warning label ‘out’ defined but not used and related indentations.
    
    Define same preprocessor conditions for goto and label visibility. Correct also
    related indentations.
    
    Co-authored-by: Hannes Müller <>

commit 5e010474cf2e30fa053f0a1a460a752f06438cf7
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Sep 15 16:57:59 2022 -0400

    Fix test case for 64-bit mingw

commit 305cde7904ab676b7974ae68acb40b788b4c484e
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Sep 15 15:50:35 2022 -0400

    Passes on 64bit mingw

commit 05785cafcf584d80c6b48651e1d33c4a3feca75c
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Sep 15 15:18:09 2022 -0400

    Fix arg alignment for STDCALL

commit 98d4ad65e9933ed4878ef4aacfaa8299e467a903
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Sep 15 09:42:53 2022 -0400

    Fix test headers

commit 2abf00a6c61f4cf6232dc50f28204be020bef05d
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Sep 15 08:25:39 2022 -0400

    Tweak msys2 tools again

commit d1b31536af74590b74236a00254e77617a8d50b0
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Sep 15 08:16:26 2022 -0400

    Fix msys2 tool selection

commit d352ed366722d5dfce0c1581c3820124c0bbafed
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Sep 15 08:10:53 2022 -0400

    Build 32- and 64-bit msys2

commit 4d0a0384ce11446e02fb7f233aae5c19c8082fb1
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Sep 15 07:58:26 2022 -0400

    msvc requires the printf change, not mingw

commit a509abf6b0ef9045b8df05b0c3663969b21290c4
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Sep 15 06:45:00 2022 -0400

    Install unzip

commit 950ed4a75384c4e7b0a512cb49f71f4d99c50a5d
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Sep 15 06:33:14 2022 -0400

    Don't make msys2 default shell

commit 5d02c0cca3750c7aac61971b9e4cb94940793303
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Sep 15 06:28:23 2022 -0400

    Try msys2

commit 64a78fa760c581f9c70199abb34aef1e0d086bd2
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Sep 15 06:08:30 2022 -0400

    Try new path

commit 77fdeae859f3ab96bc936f0a967d34a5609af40d
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Sep 15 01:37:31 2022 -0400

    Find mingw32

commit bb4e7278b7f362afd03d128e7cb68a5e0e2efaf7
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Sep 15 01:28:58 2022 -0400

    DEbug

commit 7443b421d39087cad2e607d00b845c670b18920f
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Sep 14 23:17:21 2022 -0400

    Try new shell

commit 2ebc36f4be835437fa5d6c4c2b796fc22f769323
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Sep 14 23:11:52 2022 -0400

    Fix indentation

commit 3740b243277c6dc210d45bd0b4f8abe8c2e1cb29
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Sep 14 23:10:43 2022 -0400

    set mingw32 path

commit 7bf23f899cef435d023ecc8afde34d9e83829c2f
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Sep 14 23:04:42 2022 -0400

    Rename job

commit ce5b2208121667236874181360ca91aaa285b528
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Sep 14 23:02:32 2022 -0400

    Fix mingw32 github actions

commit 317c9b6a13d3414c510b27bdc7ce57be56399df5
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Sep 14 22:54:10 2022 -0400

    Add mingw32 testing

commit 19e8354ff9b608b5410451caef6a9773375de005
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Sep 14 07:36:06 2022 -0400

    Fix test case

commit 4932f351579fb722e1e0b58a173b1571a6dfae79
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Sep 14 07:08:06 2022 -0400

    Improve test case

commit 819b01ced894028d41a34ec0178de9e7637b23de
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Sep 14 07:07:15 2022 -0400

    Add test case

commit b577a5b801b1d1aef1aec5920d34fd1fd6597122
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 12 10:23:59 2022 -0400

    Mention Cygwin static trampoline support.

commit 4b54a6471a8f98eb8bc1ea1694a8f3a3a433e538
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 12 09:02:08 2022 -0400

    Fix limits.h inclusion for cygwin

commit a1130f37712c03957c9b0adf316cd006fa92a60b
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 12 08:53:06 2022 -0400

    Add static trampoline support for Cygwin

commit 26cc9a6c73c80e8459c25da3718c91cf5a36cbd8
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 10 20:36:45 2022 -0400

    Remove stray }}

commit 078184887d65bf4a3ecd2f78f6cdbf4c91ccc357
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 10 11:45:28 2022 -0400

    Update rlgl usage (switch from player ID to labels)

commit 6e7caacb9c94efba6775825df2479be389da51f1
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 10 10:31:37 2022 -0400

    Label rlgl reports

commit d9a19e21c2b86e03b6acb8a2d73d992c8e4974e8
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Sep 7 07:58:03 2022 -0400

    The right kind of quotes

commit 2b2644969cbeeaee50938fbea591ea7f85df809e
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Sep 7 07:57:26 2022 -0400

    More quotes

commit eb9eb1f6f041548fe670c76f7a90d1c53c75d620
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Sep 7 07:49:51 2022 -0400

    Fix random build dir

commit ea124a99da9efb3bde86a1706e15f62be7e68a66
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Sep 7 07:21:21 2022 -0400

    Remove bogus sparc compiler flag

commit cca77833fd53ffec93a4962d1e9cd7ea5a38f13f
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Sep 7 07:20:59 2022 -0400

    Fix typo

commit 8ee64076f1b7cc654ff24adaffff25ddb3d57484
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Sep 7 07:14:13 2022 -0400

    Fix typo

commit 086935029d23dad133c97dfaf68749b7726460a1
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Sep 7 07:12:10 2022 -0400

    Set CC and CXX for GCC compile farm builds

commit da905276850342df0f9dfe2c775f6c649d4eed6b
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Sep 6 21:15:58 2022 -0400

    dlmmap fix and always check for PaX MPROTECT on linux
    
    Also make EMUTRAMP experimental
    From Stefan Bühler
    https://github.com/libffi/libffi/pull/282

commit b86c3dc0950ad5d8991e3970d56daeb409650d60
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Sep 6 14:25:09 2022 -0400

    Fix typos

commit c9be1378c709586f264dd643f92f71b9f1a842b2
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Sep 6 14:12:21 2022 -0400

    Retry autoconf downloads

commit 62471fd078db7ef66ca8b3118187a2911f2bb3e7
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Sep 6 13:00:02 2022 -0400

    Fix typo

commit b2344575569bc3bd129ad0ff92b49dc220fb287b
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Sep 6 12:43:08 2022 -0400

    Fix unwindtest on macos

commit fc4e7c4a10dff3c99d7ea9be33d47e6d5f0efda7
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 5 22:13:58 2022 -0400

    Install automake on macos

commit 5a6c94f7d49bcd64c85bde04c2d1f10b59d5797c
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 5 22:04:52 2022 -0400

    Test with gcc and clang on macos 11 and 12.

commit 351318e3bde9ac90c6d5eddbaa7f26ee3e7bcc6c
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 5 15:45:53 2022 -0400

    Switch to 7 char SHA IDs.  Fix windows crlf at git clone time.

commit 2a024088801403ca0c579d20c3decb8dc1453df1
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 5 12:56:19 2022 -0400

    Use GitHub SHA for rlgl ID

commit e4c5d46b0abaa8a12e97f0e0673e3efdda59fab8
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 5 12:19:57 2022 -0400

    Pass large structs by value

commit 4b79267be359b42e7a4cbf95068abe805aae0061
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 5 08:11:45 2022 -0400

    outputs vs output

commit 3020ad832144e35d2a42fb8782ddbd3ed69fdbaf
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 5 08:07:57 2022 -0400

    Use single quotes

commit f969a50aadfdf288797d5492dfb768d9916b9477
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 5 08:06:53 2022 -0400

    Try {{}}

commit 8df671a35e517f27da78b1b933f19294cfc7224f
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 5 08:05:39 2022 -0400

    Fix compares

commit 6a9bbc85a95a8a6d314452c8c5ef4add61e7b280
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 5 07:54:47 2022 -0400

    Show host availability

commit 49a361c35b3d826c02e6dc3f15c86555e62ed933
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 5 07:51:34 2022 -0400

    Fix conditionals?

commit d9189beb6e61b20ff4b84fd994d895a29351c422
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 5 07:47:46 2022 -0400

    Use boolean values

commit 2bcdcda8eda82cce594d2c821fc6a87069041bcc
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 5 07:44:01 2022 -0400

    Try conditional steps

commit d86d55e51fc2d35ff3a829d41c8ec1c83570cd40
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 5 07:15:38 2022 -0400

    Tweak test for host availability

commit 5b4d5f2b3a3f3f9fb71ce40e3be00ae6191ffc37
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 5 07:11:12 2022 -0400

    Fix triples

commit 02e6a894cbb1d851ec1a31b3277f2414c4a1370f
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 5 06:55:08 2022 -0400

    Add missing paren

commit fcaa8ebbccf2e2e4e0317164b624b683ac95c474
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 5 06:47:40 2022 -0400

    Unnest quotes

commit f4009ed4f0351c6c8e8f410dac7c558fe9996e7e
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 5 06:40:00 2022 -0400

    Fix syntax error

commit f92e32cfacdbf82172b06ce13d63eab65f205598
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Sep 5 06:17:38 2022 -0400

    Try dribbling output during make check

commit ef57e08aa34dc9f55abb493a554a957ca358d931
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Sep 4 22:35:32 2022 -0400

    Split up build into multiple steps

commit 2480cc48def54eb155429710187452e0d495b773
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Sep 4 21:09:06 2022 -0400

    Try to fix ssh issues

commit 1105db1ce6cf1f7ab5a254cd04453b0c5e9dad30
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Sep 4 09:52:28 2022 -0400

    Try forcing exit upon completion

commit 92a7775150978b3e98b0d47280dd6dd6580dbd07
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Sep 4 09:17:01 2022 -0400

    Source .profile on remote host if it exists

commit 8e3ea879a9e538c9237c34ae113babe078565da9
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Sep 4 09:07:13 2022 -0400

    Only ignore errors when testing for ssh connectivity.

commit a643db6c1f1bd7594e42a03865b7a9063cfbf1c1
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Sep 4 08:28:50 2022 -0400

    Don't fail on error

commit 33f1f19a7da022a7d8dba59bb97c28cb4fd6aadf
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Sep 4 08:24:06 2022 -0400

    Add POWER hosts

commit 7a300f3d657ee7b94bda5296b3b366b5915a5c79
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Sep 4 08:08:47 2022 -0400

    Fix the setting of the host

commit b104dd621f9d2b298ede781f0bd289ce8a0c20ee
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Sep 4 08:07:12 2022 -0400

    If a remote host is unavailable, don't fail the build.

commit 7194e11832ad9609bd38c2a1fd4995d749443ee0
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Sep 4 08:01:47 2022 -0400

    Debug build

commit 6fccf95b4f97335eda1d8bfe2e12fc38bea571d2
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Sep 4 07:57:53 2022 -0400

    Add connection timeouts and retries

commit b4cf3d64b1807667eba7863701b6fcae68c65e68
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Sep 4 07:32:18 2022 -0400

    Prune warnings from sparc64 linux ld

commit 807283704a4a77187103f9d4d73c9feb75f3c757
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Sep 4 07:21:02 2022 -0400

    For host triples to distinguish m1 arm64 from others.

commit 4cba6c1858e842ef674ed41b5d79bc981fdfc411
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 11:42:11 2022 -0400

    Don't exit if runtest fails

commit 439dfa1f7f96aec5689d5b28511e0162bc0ae3f9
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 10:42:46 2022 -0400

    Fix spaces

commit b7d9e3a1a0c3138df513cd5df49a0e14584c7556
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 10:41:45 2022 -0400

    Run rlgl

commit e85b55c2d30783db52d148f2691c8a3afd3d4ec3
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 10:16:01 2022 -0400

    Fix recursive copy flag

commit 98168532a22615bd2aab0f3bf08e8a5f8abcd375
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 10:14:56 2022 -0400

    Fix typo

commit 943219e3281d4f9f3ae416ca3bf9fd3482cf8c63
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 10:13:04 2022 -0400

    Use scp, as rsync isn't available on all hosts

commit 0e912017c96afe6bf6500e90075df6b7366c337a
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 10:04:54 2022 -0400

    Use ssh port numbers and copy dejagnu results back

commit c8fe3d3d440d46b7b465e8d11ea8461a5ae86462
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 09:58:43 2022 -0400

    Use username

commit 3e75f9554f06bab33e022276d320a301f1b04e44
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 09:56:13 2022 -0400

    Tighten permissions on key

commit d893eda74196ecc39f1d839b340d0b158fc536eb
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 09:55:01 2022 -0400

    Disable host key checking

commit da35cf0fb693b6f93a745119c777b3c4aa6d779b
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 09:52:26 2022 -0400

    Add quotes

commit 128d57ab940a3a76658a8c8b4b98cd80fb602d65
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 09:51:00 2022 -0400

    Remove bad command

commit 5b34bed4ff0a5c1c0257f4d586b868ded173dc67
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 09:49:45 2022 -0400

    Debug

commit 77b32cb1533e5166bebf2a7cd1465e3a1eef55ad
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 09:43:41 2022 -0400

    Fix typo

commit 22c1ceb27597d21779c7565c94c444dadc606478
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 09:42:01 2022 -0400

    Simplify remote tests

commit dde8e81deba0c2ef3edca804f34347bfae0e88bd
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 09:22:19 2022 -0400

    Revert to old file copy

commit 3cd913c8dafa71c1bb14ca5e1f4208343cc3a194
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 09:19:08 2022 -0400

    Remove SHA256

commit 3127a25df827f2afa3f6bdfdfceff169fe241fcf
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 09:13:16 2022 -0400

    Try new fingerprint

commit f095b747423806b44c2ef883ec65a7ce5230fbf7
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 09:11:47 2022 -0400

    Use correct fingerprint

commit 1f44118157a005661b55f1747cfd15773214e458
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 08:55:20 2022 -0400

    Ignore fingerprints

commit 8fd73fe61f496a24a4093ba1d195a884f86d547e
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 08:51:33 2022 -0400

    Use rsa fingerprints

commit 09c3908a4279f4c9e2c4a8282efb29c412964119
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 08:43:23 2022 -0400

    Use host fingerprints

commit caa793a3401b92b0ef2006ab90c4dd30b7ab7d5c
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 08:35:56 2022 -0400

    Try new scp

commit 0cbffe5ef542641170b8cbe588fb703e7410cb13
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 08:23:35 2022 -0400

    Fix GITHUB_RUN_NUMBER usage

commit 628cc2f675c6df35213d74388aac69c5c165b1f4
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 08:16:47 2022 -0400

    Fix loongarch64 server port. Try GITHUB_RUN_NUMBER.

commit 9382d7955f80aaa6fc0ca036956fe4e14a0d45b6
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 08:06:11 2022 -0400

    Reference matrix variables properly

commit e081b2cec74253b48a0d09d8a0d309f60e8f82e5
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 07:58:27 2022 -0400

    List cfarm servers explicitly

commit 074e9c79e36e63a9cc8c8fca6c76dd927778dc54
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 07:46:02 2022 -0400

    Try multiple hosts

commit 6002b2ad639f9125da56834e4b0a1b12fa232c57
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 07:10:58 2022 -0400

    Use correct version of scp-action

commit a990426c5f4114c85f6cfc190276786ef5c49521
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 07:09:33 2022 -0400

    Use scp instead of rsync

commit 0fabd777d91e13bb4795d0b9db0b2201f9298904
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 07:02:34 2022 -0400

    Remove extra debug

commit 1922870fe3baf41991670db81b35c1ab0b482895
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 06:53:52 2022 -0400

    Debug rsync

commit aee50966ca85d777271cd7e14714b916264cb190
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 3 06:47:49 2022 -0400

    Change remote path

commit 73552c2e732df17c7f9008fecfc448c1d6397cfe
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Sep 2 20:03:02 2022 -0400

    Tweak

commit 904424fe82bd6d4a498fee84b3f26d55426ff75f
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Sep 2 19:58:19 2022 -0400

    Work in actions dir

commit 31c31db079b054270a19cc710f06fbb84e805511
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Sep 2 19:48:33 2022 -0400

    Run autogen before copying files to remote server

commit d84f2ea0ea760b8e63f50eb6c3583aeb38d89d0e
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Sep 2 19:44:34 2022 -0400

    Install autoconf

commit 78beb4aee5386cd4ea14cfa753a778eafcc3ec2d
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Sep 2 19:34:50 2022 -0400

    Try more remote testing

commit 16f17cd8418ce2239f8b9b31e5f3b5414298292f
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Sep 2 19:16:12 2022 -0400

    Fix ssh

commit badccc01c84ee38f5f443c910ba06b3792029d8b
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Sep 2 19:11:53 2022 -0400

    Add platform

commit 0eae6af297d9a34bd6adcbf43fbbd27e5feebc53
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Sep 2 19:09:43 2022 -0400

    Missing colon

commit ce8cec023499d8da04936e2dc40111f8d6a1783e
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Sep 2 19:04:39 2022 -0400

    Try cfarm access

commit 9b58d4bad688820fa9bb077c0ec5f5949ac18bd2
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Sep 1 08:57:13 2022 -0400

    GCC_AS_CFI_PSEUDO_OP passes on msvc, although it's not sufficient.

commit e6d05bea0b4c350edaaf215a81f49298f34b10e4
Author: Ole André Vadla Ravnås <oleavr@gmail.com>
Date:   Thu Sep 1 14:51:15 2022 +0200

    Fix struct padding warning reported by MSVC (#613)
    
    When building on 32-bit x86.

commit 80912f2f09f4c06b2f720ff243d7b9b6795093f9
Author: Clément Chigot <pro@helflym.eu>
Date:   Thu Sep 1 14:47:16 2022 +0200

    Makefile: enable target overridings. (#661)
    
    This patch allows target to provide extra files enabling the
    override of Makefile rules.
    This patch is not needed for libffi itself but only for GCC on AIX. The
    t-aix file which is here empty will be replaced in GCC repository. We cannot
    include GCC version directly here because it has no sense for a standalone
    libffi.
    
    Co-authored-by: Clement <clement.chigot@atos.net>

commit 1fa7d96cdf7bba354f61337854210f060ea56b9f
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Sep 1 08:28:59 2022 -0400

    Don't use cached configure test result

commit bcb42e432b5372b1876e8c8db68837d92d1f94ae
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Sep 1 08:05:01 2022 -0400

    Fix .cfi pseudo-ops test.
    
    The existing tests were failing because the GCC was wrapping the test
    asm in cfi directives, which gas doesn't like.  So now we test if the
    compiler emits them first, and assume that the assembler will accept
    them.  If that doesn't work, then we test if the assembler will accept
    them assuming the compiler doesn't emit them.

commit 0eb91425f355be19939507d4d4d056bdad12c9dd
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Aug 31 20:46:24 2022 -0400

    Change comment style

commit ca76ab3b8551d9e7cee6f533ecd1e89fee70e16a
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Aug 31 10:30:26 2022 -0400

    Fix exports for tests

commit 7b1dd8ce10e6bef043088896136105b8aabbb882
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Aug 31 09:49:21 2022 -0400

    Don't -malign-double for x86-32

commit 41d0851fc545ff1ffd8377236d193268c8a10740
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Aug 31 07:36:43 2022 -0400

    Update copyright year

commit 5a4774cd4d90f9ea7e7f9e34b15de29463aba4c4
Author: Xi Ruoyao <xry111@xry111.site>
Date:   Fri Jul 22 05:56:30 2022 +0800

    static trampoline for LoongArch (#723)
    
    For the benefit and technical details of static trampoline, see
    https://github.com/libffi/libffi/pull/624.  As a new architecture, let's
    be "safer" from the start.
    
    The change survived libffi testsuite on loongarch64-linux-gnu.

commit 5264a7c5cd3460465326ebd347559828196dceb1
Author: matoro <matoro@users.noreply.github.com>
Date:   Thu Jul 21 17:54:19 2022 -0400

    Move FFI_TYPE definitions above <ffitarget.h> include (#722)
    
    For powerpc at least, these definitions are referenced in the
    target-specific ffitarget.h.  Discovered in the jffi project.  Should
    close https://github.com/libffi/libffi/issues/637.  Downstream jffi bug
    https://github.com/jnr/jffi/issues/107.  Downstream distro bug
    https://bugs.gentoo.org/827215.
    
    Testing - both libffi and jffi test suites pass with this patch applied,
    at least on ppc64le linux.  I did not see any warnings about
    redefinitions.
    
    Tested versions - libffi 3.4.2, jffi 1.3.6 and 1.3.9.

commit ddc6764386b29449d941b2b18d000f2987a9d848
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Jun 25 22:04:53 2022 -0400

    Add missing file

commit 2b4728a21f9a36c6567df8dd27fc8a665264019c
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Jun 25 21:58:51 2022 -0400

    Fix path

commit 37cc25bb25344ee33c5b7ff06c6804d31374a544
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Jun 25 21:56:40 2022 -0400

    Install and use autoconf from special dir

commit 2f2eab957d3acbf571c570ab2ccf894e3c85b033
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Jun 25 21:53:00 2022 -0400

    Fix autoconf version number

commit 4b1465495c9d6e5ef95bacc38b86483fd910f887
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Jun 25 21:51:25 2022 -0400

    Fix wget

commit 398b7534d97b2b642492fbb024e15be3df564da8
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Jun 25 21:49:09 2022 -0400

    Fix wget

commit 2c047eb7b108fba1203ba6122e830a7ae17721ca
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Jun 25 21:46:54 2022 -0400

    Fix untar

commit 446c092f409bd37c21b5b986c2be8f87a1cb1dec
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Jun 25 21:45:32 2022 -0400

    Install autoconf-2.71

commit 5c76ac1ff55c4ed6faa145b395e9a14cdb834708
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Jun 25 21:22:01 2022 -0400

    Update autoconf?

commit 4a46f35ba5a4bbb3ea396e1fa836535d338f8930
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Jun 25 21:14:30 2022 -0400

    Update configury

commit fc8c8c1e2c31321b38dc079e549bc7748da4159d
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Jun 25 11:06:00 2022 -0400

    Fix ILP32 for aarch64

commit b5abc4f6478147ce72fa6b2eb95296883d5ef3ef
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Jun 25 10:43:00 2022 -0400

    Remove duplicate macro definition.

commit 280fe78d37f58927b280e2e316a2ae19201f2b83
Author: Xi Ruoyao <xry111@xry111.site>
Date:   Sat Jun 25 18:58:53 2022 +0800

    configure.ac: use grep -E instead of egrep if possible (#720)
    
    Upstream will start to emit a warning if egrep is invoked in the next
    grep release.  Stop invoking it explicitly.  Use AC_PROG_EGREP to try
    "grep -E" first, and fallback to egrep if "grep -E" does not work.  We
    need this fallback for some non-GNU grep implementations (like Solaris).
    
    Url: https://git.savannah.gnu.org/cgit/grep.git/commit/?id=a951562

commit 1f14b3fa92d4442a60233e9596ddec428a985e3c
Author: Russell Keith-Magee <russell@keith-magee.com>
Date:   Fri Jun 3 02:46:35 2022 +0800

    Ensure that VM_PROT_EXECUTE is set on the trampoline page. (#718)

commit 000ecd01cb534fd8bb593422013a79c8497263ff
Author: Sergei Trofimovich <slyich@gmail.com>
Date:   Thu Jun 2 18:43:53 2022 +0000

    powerpc64: fix build on gcc-12 (assembly requires AltiVec) (#719)
    
    Without the change build fails on powerpc64-gcc-12 as:
    
        src/powerpc/linux64_closure.S: Assembler messages:
        src/powerpc/linux64_closure.S:363: Error: unrecognized opcode: `lvx'
    
    It's a 90205f67 "rs6000: Fix bootstrap (libffi)" patch by
    Segher Boessenkool from gcc upstream repository. It's enough to get
    libffi build on powerpc64.

commit c528d5b45e248f47b5af6f16bfcafc779b196ed1
Author: Anthony Green <green@moxielogic.com>
Date:   Sun May 29 11:22:38 2022 -0400

    Fix windows arg passing

commit aa2c4141722ec8b8b014b97e049ffa2d140d0c0d
Author: Anthony Green <green@moxielogic.com>
Date:   Sun May 29 10:28:10 2022 -0400

    64-bit cygwin: fix struct args. Document change.

commit 36b265ae438a364722c98136ba79cb450a48fca3
Author: Anthony Green <green@moxielogic.com>
Date:   Sun May 29 10:12:30 2022 -0400

    m32r: pass copies of large structs

commit c248764d3391a460cdd31a1cae82281fd6dfbecd
Author: Anthony Green <green@moxielogic.com>
Date:   Sun May 29 07:27:32 2022 -0400

    Update testsuite Makefile

commit fd1fe195e1d98b65ac3b0735cc0d0df95fc1b27b
Author: Martin Storsjö <martin@martin.st>
Date:   Sun May 29 14:16:49 2022 +0300

    Fix building on aarch64 after e409225b41b60c490a094bb068e639a2364202fd (#716)
    
    The ALIGN_DOWN macro was renamed in 2018 in
    e6eac7863e2bf1a009ea863041b354bdb4af6b67.

commit c1e237b22ee6042e2d4229008acea8f38c3d0109
Author: Anthony Green <green@moxielogic.com>
Date:   Sat May 28 20:46:14 2022 -0400

    Pass large structs by value on the stack

commit 769b7366d2312c7efdfa605cf1fc1156b94ba2e0
Author: Anthony Green <green@moxielogic.com>
Date:   Sat May 28 19:59:35 2022 -0400

    Fix for MS x64 ABI

commit faafcb9df9aebdde1415a73d17fe9e943d97d455
Author: Anthony Green <green@moxielogic.com>
Date:   Sat May 28 17:24:43 2022 -0400

    Fix moxie struct passing

commit f55d7ff1a24e9c678dac3397175772a9914c02b0
Author: Anthony Green <green@moxielogic.com>
Date:   Sat May 28 14:30:13 2022 -0400

    moxie: structs > 8 go on stack

commit 55f80b026c2ac854086a2770d324fa55188f0f81
Author: Anthony Green <green@moxielogic.com>
Date:   Sat May 28 14:17:53 2022 -0400

    New test cases

commit 72c3192773fe483f6517e343ecc3ea468ce73a4f
Author: Anthony Green <green@moxielogic.com>
Date:   Sat May 28 13:53:26 2022 -0400

    Pass copies of large structs on the stack

commit e409225b41b60c490a094bb068e639a2364202fd
Author: Anthony Green <green@moxielogic.com>
Date:   Sat May 28 09:42:13 2022 -0400

    Pass large structs by value for Linux x86_64 and Aarch64.
    
    Aarch patch by Andreas Schwab. https://github.com/libffi/libffi/commit/482b37f00467325e3389bab322525099860dd9aa

commit 01d54435c9f9e22345cb2f7d482fcfb42fd11416
Author: Anthony Green <green@moxielogic.com>
Date:   Tue May 24 21:38:51 2022 -0400

    Mention loongson64

commit f259a6f6deff9bdc7dd998b8b6bdbb4c166b33c3
Author: zhangwenlong <zhangwenlong@loongson.cn>
Date:   Wed May 25 09:31:08 2022 +0800

    Support loongarch64 (#678)
    
    * update config.{guess,sub}
    
    * Support loongarch64
    
    Co-Authored-By: Cheng Lulu <chenglulu@loongson.cn>
    Co-Authored-By: Xi Ruoyao <xry111@mengyan1223.wang>
    Co-Authored-By: Xu Hao
    Co-Authored-By: Zhang Wenlong <zhangwenlong@loongson.cn>
    Co-Authored-By: Pan Xuefeng <panxuefeng@loongson.cn>
    
    Co-authored-by: panxuefeng <panxuefeng@loongson.cn>
    Co-authored-by: Cheng Lulu <chenglulu@loongson.cn>
    Co-authored-by: Xi Ruoyao <xry111@mengyan1223.wang>

commit d02d46607b5ba62510ddab5fa89303dfa09a7853
Author: Anthony Green <green@moxielogic.com>
Date:   Tue May 24 12:28:08 2022 -0400

    Debug cygwin builds

commit 7e93ded9302d7e6e3cc77b39e8eec4b323e63585
Author: Anthony Green <green@moxielogic.com>
Date:   Mon May 23 21:42:52 2022 -0400

    Revert "Don't dereference beyond the last array entry. (#667)" (#715)
    
    This reverts commit 92d77d0e87a5f2a8c9c9b2431ffd264cb664e17a.

commit 432384b6d47087d144d3e947b62c48ddc6e4740b
Author: Russell Keith-Magee <russell@keith-magee.com>
Date:   Tue May 24 09:06:19 2022 +0800

    Add support for ARM64 as an Apple simulator platform. (#712)

commit 9af445fd70e4d7f2b3bdfc511cc3cc76a6b84c9a
Author: Kevin Bowling <kevin.bowling@kev009.com>
Date:   Mon May 23 18:05:01 2022 -0700

    Upstream FreeBSD riscv patch (#708)
    
    Like 8276f812a99b10d1f2c387dbd6ef2ca4f597c733 commit message:
        > devel/libffi: Fix abort() on ARM related to __clear_cache()
        >
        > The current FreeBSD __clear_cache() implementation does nothing #if
        > __i386__ || __x86_64__ #else abort();
        >
        > cognet@ advises this is an issue for anything !Apple that is using the
        > libcompiler_rt provided by Clang on ARM, and requires upstreaming.
    
    Co-authored-by: Kristof Provost <kp@FreeBSD.org>

commit de95947ae5db07e4589bb16bab30b6c8ba2b3106
Author: Roland Schatz <roland.schatz@oracle.com>
Date:   Tue May 24 03:04:43 2022 +0200

    Fix check for invalid varargs arguments. (#707)

commit 92d77d0e87a5f2a8c9c9b2431ffd264cb664e17a
Author: Anthony Green <green@moxielogic.com>
Date:   Mon May 23 21:03:00 2022 -0400

    Don't dereference beyond the last array entry. (#667)

commit e504f90fe9123d256f6bc556badb25d1d0aa7046
Author: A. Wilcox <AWilcox@Wilcox-Tech.com>
Date:   Mon May 23 18:42:32 2022 -0500

    testsuite/libffi.closures: Fix PowerPC 64 (#709)
    
    -mlong-double-128 is only supported on glibc.
    
    This test still passes on glibc targets, and now passes on musl targets
    as well (which uses 64-bit ldbl).

commit f3e61d497a5ddc3bbe506e0554a0be421f6f0f35
Author: Anthony Green <green@moxielogic.com>
Date:   Mon May 23 09:11:42 2022 -0400

    Remove debug code

commit a36880e710f2ec37c0cc50d436facd7c2d282e7b
Author: Anthony Green <green@moxielogic.com>
Date:   Mon May 23 08:35:21 2022 -0400

    Remove stray export command

commit 5f98afe802e189584e5649f53a7dd07280516efd
Author: Anthony Green <green@moxielogic.com>
Date:   Mon May 23 08:11:26 2022 -0400

    Debug cygwin builds

commit abaacbf8cdf80ddd9303fda5d9be4312d52b531c
Author: Anthony Green <green@moxielogic.com>
Date:   Mon May 23 07:57:26 2022 -0400

    Debug cygwin tests

commit e770fb76a781c642f185c23e686bf2af0429ce4c
Author: Anthony Green <green@moxielogic.com>
Date:   Sun May 22 20:43:41 2022 -0400

    Clean up types

commit 2e825e219fa06d308b9a9863d70320606d67490d
Author: YunQiang Su <syq@debian.org>
Date:   Mon May 16 09:47:11 2022 +0800

    MIPS: fix some N32 test failure (#701)
    
    Some go closure and pointer testcase fails.
    These failures is not introduced by the complex support code.

commit 1f1c33753b65a75216770928018e8932168e8908
Author: YunQiang Su <syq@debian.org>
Date:   Mon May 16 09:45:27 2022 +0800

    MIPS: fix O32 softfloat support (#702)

commit 3ac265d5c0e038e324bae29131dbc4bacb4935ea
Author: hjl-tools <hjl.tools@gmail.com>
Date:   Sun May 15 18:43:56 2022 -0700

    x86-64: Always double jump table slot size for CET (#710) (#711)
    
    When CET is enabled, double jump table slot size to add 4 bytes of ENDBR64
    for CET.  Since CET enabled clang doesn't have the LLVM assembler bug:
    
    https://bugs.llvm.org/show_bug.cgi?id=21501
    
    fixed by
    
    commit 04d39260d64e08b8bfb3844109ad43d4055b2e8d
    Author: Rafael Espindola <rafael.espindola@gmail.com>
    Date:   Wed Nov 4 23:50:29 2015 +0000
    
        Simplify .org processing and make it a bit more powerful.
    
    we can use .org to allocate jump table slot size to 16 bytes.

commit e67697c370e8875f28b2bf62fac25edad7558eca
Author: YunQiang Su <syq@debian.org>
Date:   Thu Mar 31 20:44:49 2022 +0800

    MIPS: add Complex support (#698)

commit e3cf8b806c3ca919f95b9d33d6037869a059c035
Author: Ole André Vadla Ravnås <oleavr@gmail.com>
Date:   Thu Mar 31 14:42:03 2022 +0200

    Allow system to have overlapping mallopt defines (#700)
    
    Which is the case on some OSes, such as QNX.

commit c086cacb8b9665fab0c046fc92959fc8af5239b8
Author: Ole André Vadla Ravnås <oleavr@gmail.com>
Date:   Thu Mar 31 14:40:59 2022 +0200

    Clean up the QNX ARM bits (#699)
    
    - Add missing include.
    - Use constants instead of magic values.

commit ab1677106605aba1c27665964ff90bea59612ce3
Author: Max Filippov <jcmvbkbc@gmail.com>
Date:   Sun Feb 20 16:01:38 2022 -0800

    Xtensa cleanups and XEA3 support (#677)
    
    * xtensa: clean up stack usage in ffi_trampoline call
    
    Space for outgoing call arguments reserved in the stack frame of the
    function ffi_trampoline overlaps register spill overflow area at the
    top of the frame. In xtensa XEA2 exception architecture the layout of
    overlapping areas is identical so that even if the ffi_trampoline
    registers frame gets spilled the memory contents doesn't change.
    This is not so with the xtensa XEA3 exception architecture, where
    registers a0 - a7 of a different function are spilled in that location.
    
    Reserve spill area for 8 registers to avoid overlapping of the spill
    area with the outgoing call arguments area in the ffi_trampoline.
    
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    
    * xtensa: support xtensa XEA3 exception architecture
    
    XEA3 requires that 32 bytes of register spill area is reserved in all
    functions. Fix ffi_cacheflush entry instruction to satisfy this
    requirement.
    
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    
    * xtensa: maintain stack alignment
    
    xtensa ABI requires stack alignment on 16 byte boundary and passing
    up to 6 arguments in registers. To simplify stack alignment maintenance
    fixed amount of stack space is reserved for arguments passed in
    registers and variable but correctly aligned amount is reserved for the
    remaining arguments. After copying arguments to the stack and loading
    registers the fixed part of the stack reservation is freed.
    
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    
    * xtensa: fix err_bad_abi tests
    
    Check ffi_cif::abi value in the ffi_prep_closure_loc and return
    FFI_BAD_ABI error if it's not one of the supported values.
    
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>

commit aa3fce08ba620c50db17215a9f14dd0f1facf741
Author: Andreas Schwab <schwab@linux-m68k.org>
Date:   Sun Feb 13 21:04:33 2022 +0100

    riscv: extend return types smaller than ffi_arg (#680)
    
    Co-authored-by: Andreas Schwab <schwab@suse.de>

commit 464b4b66e3cf3b5489e730c1466ee1bf825560e0
Author: Dan Horák <dan@danny.cz>
Date:   Mon Jan 31 14:08:09 2022 +0100

    powerpc64: fix handling of homogeneous float128 structs (#689)
    
    If there is a homogeneous struct with float128 members, they should be
    copied to vector register save area. The current code incorrectly copies
    only the value of the first member, not increasing the pointer with each
    iteration. Fix this.

commit b60d4fc7bb4419021bf566e09de55ed1d9b041db
Author: rorth <ro@CeBiTec.Uni-Bielefeld.DE>
Date:   Thu Dec 23 14:32:46 2021 +0100

    src/x86/win64.S: Use #define instead of .macro (#665) (#669)
    
    The Solaris/x86 assembler doesn't support .macro/.endm, so use #define since
    win64.S is passed through cpp anyway.

commit 4fa6239f42ddc7df12e40da9ae25ba715312239c
Author: Andreas Schwab <schwab@linux-m68k.org>
Date:   Thu Dec 23 14:27:32 2021 +0100

    testsuite/libffi.call: fix mismatching return types (#679)
    
    Co-authored-by: Andreas Schwab <schwab@suse.de>

commit 0f2dd369cd5edcefad29b3fca4e1d08cb34f8f19
Author: Jules Maselbas <54854023+jmaselbas@users.noreply.github.com>
Date:   Wed Sep 22 21:39:56 2021 +0200

    Makefile: Add missing kvx/asm.h to dist headers (#660)
    
    The header kvx/asm.h is required to build libffi and is missing from
    the dist tarball.
    
    Signed-off-by: Jules Maselbas <jmaselbas@kalray.eu>

commit ee1263f7d43bd29b15fc72c4d9520a824e8004df
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Jul 29 17:46:17 2021 -0400

    Fix 'type'-o

commit 86d5ecc5e84fbbc79fcff6a307310630d9d68549
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Jul 29 16:58:32 2021 -0400

    Fix struct arg passing

commit 03596285ed36b94bb3e1d8bdebfe58590e2766df
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Jul 29 10:16:42 2021 -0400

    No more xfail for alpha

commit 4ac18f26ed16588377b1482208212aaa39624e21
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Jul 29 10:01:40 2021 -0400

    Add alpha CPU

commit 7643c6ee68e376810b4185e5f38e156c97bcc090
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Jul 29 08:51:35 2021 -0400

    Try to fix ARM QEMU tests

commit a04f57bce057604f38bb7c1bf32b7f671d2b56d5
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Jul 29 08:47:53 2021 -0400

    Fix m32r testing

commit 339acf3d8f049d296dafac3f482c1b7db29c0bae
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Jul 29 08:38:18 2021 -0400

    Debug cross-in-containers builds

commit 43e4ad4d7b4bcc87ee447736a1172b2801a47908
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Jul 29 07:55:59 2021 -0400

    Test passing structs by value

commit 68485e33a413c3d91fbfd7ec270803ae6bd3d3db
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Jul 29 07:13:35 2021 -0400

    Mention x32 static tramponline fix

commit 07f826fdd4d8a23a190f107f7ec6ad830a4864a0
Author: Harald van Dijk <harald@gigawatt.nl>
Date:   Sun Jul 25 02:39:37 2021 +0100

    Fix trampoline_code_table for x32. (#657)
    
    x32's struct tramp_parm has 32-bit pointers. This change adjusts the
    loads and offsets accordingly.

commit be0b3b6e75d4890fe18ba4164b91387beaebee06
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Jul 16 21:51:03 2021 -0400

    Fix CHECK

commit 7db17442a6c9f1399065748b7d5b9fbcac203344
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Jul 16 11:30:01 2021 -0400

    Don't check the whole buffer, just what we printed.

commit 8bcf594749882e9e4966fec2e3d6009d08a554ab
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Jul 16 11:26:02 2021 -0400

    Fix test case

commit c96b057757446fe4277f30e8423f09851ae5d0fa
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Jul 16 11:16:39 2021 -0400

    Fix test check

commit 4ed23be8e2a59e438c201ca1ba5affc0b0477b15
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Jul 16 11:08:01 2021 -0400

    Fix test check

commit eb2447249540ca568b0b464f6107501dcc0f65ab
Author: Hood Chatham <hood@mit.edu>
Date:   Fri Jul 16 14:33:04 2021 +0000

    Use CHECK to assert more things in test suite (#654)
    
    * Use CHECK to assert more things in test suite
    
    * Use snprintf instead of sprintf
    
    * Fix va_struct1 and va_struct3

commit a541fc600f4418441f91073a0834ea47b0989de9
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Jul 16 08:56:30 2021 -0400

    Update README for next release.

commit b4cf80ab54b6d9d31ef2135036e471388cf026df
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Jul 16 08:55:02 2021 -0400

    Trigger actions on master branch

commit d1eef904766dbd647de6c240a57dbc98d46e33dd
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Jul 16 08:29:08 2021 -0400

    Migrate from travis-ci to github actions.

commit f9ea41683444ebe11cfa45b05223899764df28fb
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jun 28 21:10:49 2021 -0400

    Update version to 3.4.2

commit 2bdc8e52efb78d939f23efb4f9c515355610bff5
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jun 28 19:50:29 2021 -0400

    Version 3.4.1

commit c1d09bf08c2859abb40c476c57ae521d208f92a8
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jun 28 18:50:31 2021 -0400

    Update version to 3.4.0

commit 1ed0aa73806872f0c31dccf2c689c762239d3353
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jun 28 18:45:11 2021 -0400

    Fix warnings

commit 0a2cc2ec2893821f62b36b269da1dbc0442a5617
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jun 28 14:59:07 2021 -0400

    Add missing test cases to distribution

commit ee3ef737857e13cc01a15dbef298478d90188805
Author: Hood Chatham <hood@mit.edu>
Date:   Mon Jun 28 11:51:35 2021 -0700

    Add tests for single entry structs (#653)

commit f08c5ace5750f1e1f234f52f4d3d772bb8d276a0
Author: Hood Chatham <hood@mit.edu>
Date:   Mon Jun 28 07:24:19 2021 -0700

    Fix the assertions in cls-24byte (#652)
    
    * Fix the assertions in cls-24byte
    
    * Update print statement too

commit 4557f232926353f5cdec0f2f459e4d59ce8f19e4
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jun 28 09:53:01 2021 -0400

    3.4.0 release candidate 2

commit cd4428911d5c4d25ce2c24e6728124792124bba2
Author: Jeremy Huddleston Sequoia <jeremyhu@users.noreply.github.com>
Date:   Mon Jun 28 04:56:30 2021 -0700

    Add missing FFI_HIDDEN to ffi_tramp_is_present declaration (#651)
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>

commit 9fa94c607852081adce33547bde292fe4313cff7
Author: Hood Chatham <hood@mit.edu>
Date:   Sun Jun 27 11:02:33 2021 -0700

    Print more information when an assertion fails in test suite (#649)

commit 91eaadfb2e4b79d12a45d24002b06563e5905e5d
Author: Hood Chatham <hood@mit.edu>
Date:   Sun Jun 27 09:49:31 2021 -0700

    Fix signature of function pointer in cls_dbls_struct (#648)

commit 132699b95d3ee4d889ea2a80540acf3300987dad
Author: Sergei Trofimovich <slyfox@gentoo.org>
Date:   Sun Jun 27 16:50:20 2021 +0100

    configure.ac: add --disable-exec-static-tramp flag (#647)
    
    Some projects like GHC (Glasgow Haskell Compiler) and
    gobject-introspection use `ffi_closure_alloc()` as a way
    to allocate executable memory. exec static tramp
    interferes with it (unclear how exactly yet).
    
    GHC symptom: ffi closure freeing cimplains about unexpected
    trampoline (GHC manually fills one):
    
    ```
    $ ghci
    GHCi, version 8.10.5: https://www.haskell.org/ghc/  :? for help
    ghc: freeHaskellFunctionPtr: not for me, guv! 0x7f0417a1efe8
    ghc: freeHaskellFunctionPtr: not for me, guv! 0x7f0417a1efc8
    ```
    
    gobject-introspection symptom:
    
    ```
    $ meld
    Segmentation fault (core dumped)
    
    $ gdb --args /usr/bin/python3.9 /usr/bin/meld
    (gdb) run
    ...
    Thread 1 "python3.9" received signal SIGSEGV, Segmentation fault.
    0x00007fffe9ac1ae8 in g_callable_info_free_closure (
      callable_info=0x555555d45990, closure=0x7fffe9e70c20)
        at ../gobject-introspection-1.68.0/girepository/girffi.c:428
    428       g_free (wrapper->ffi_closure.cif->arg_types);
    (gdb) bt
      callable_info=0x555555d45990, closure=0x7fffe9e70c20)
        at ../gobject-introspection-1.68.0/girepository/girffi.c:428
      data=0x555555d252d0)
        at ../pygobject-3.40.1/gi/pygi-closure.c:635
    ...
    ```
    
    To ease downstreams narrowing down the actual problem let's
    provide a knob to disable exec static trampolines.
    
    The change for not affect current default.
    
    Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>

commit 4e07374c2773711902ec12905d5c64d95d22d050
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Jun 27 11:25:06 2021 -0400

    Remove caveat about varargs support

commit 11f9713887e1d8e9bdf861c1555de55aba9fc46c
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Jun 27 07:46:12 2021 -0400

    Update contact info

commit f792adb61a27aa2a7d24573b956ce29ebdb82e03
Author: Sergei Trofimovich <slyfox@gentoo.org>
Date:   Sat Jun 26 22:26:52 2021 +0100

    configure.ac: allow user to specify READELF (#646)
    
    Before the change with x86_64-pc-linux-gnu cross-compiler
    installed the configure was not able to find cross-readelf:
    
    ```
    $ ./configure --host=x86_64-pc-linux-gnu
    ...
    checking whether .eh_frame section should be read-only... .././configure: line 19540: readelf: command not found
    yes
    ...
    ```
    
    The change uses AC_CHECK_TOOL to automatically seatch for ${host}-readelf,
    readelf. And as a bonus it also allows user to override readelf with
    something like READELF=llvm-readelf.
    
    Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>

commit 9cf15b3a284d8e79f3673b8743d4157739df5d36
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Jun 26 12:12:06 2021 -0400

    Make 3.4 release candidate 1

commit 1e5dc8de825d03f5493884a45e1edeacda2106c5
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Jun 26 12:08:35 2021 -0400

    Add missing file from make dist.  Add missing license info.

commit c0b210c7fd1e5b4a17e9fc839a4cf1d75483d591
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Jun 26 10:55:57 2021 -0400

    Remove test case

commit 87429ce726ead7bb789d194c6d979c5b0c4086e9
Author: Matthew Green <85970515+squidhacks@users.noreply.github.com>
Date:   Sat Jun 26 08:49:45 2021 -0400

    This test includes a closure and must live in the closures test directory. (#645)
    
    Co-authored-by: Matthew Green <squidhacks@users.noreply.github.com>

commit 8d83c7c1fa331b93e58967979c59c38600df1ee9
Author: Hood Chatham <roberthoodchatham@gmail.com>
Date:   Fri Jun 25 19:50:33 2021 -0700

    Make test methods static (#644)

commit becae7397873d6bb85a271b16961f055e71f42a6
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Jun 22 13:01:06 2021 -0400

    Switch from travis-ci.org to travis-ci.com.

commit fa1ef887d4dc5d18696517e32e2ae98310f0040d
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Jun 22 08:48:24 2021 -0400

    Avoid undefined behaviour

commit 84bb56914756845371be62e2753041521fd5d261
Author: Tres Finocchiaro <tres.finocchiaro@gmail.com>
Date:   Tue Jun 22 07:33:46 2021 -0400

    Remove libtool-ldflags file from .gitignore (#600)
    
    This is correct.  Thank you!

commit 5651bea284ad0822eafe768e3443c2f4d7da2c8f
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Jun 15 15:19:26 2021 -0400

    2021-06-15  Jakub Jelinek  <jakub@redhat.com>
    
            * src/x86/ffi64.c (classify_argument): For FFI_TYPE_STRUCT set words
            to number of words needed for type->size + byte_offset bytes rather
            than just type->size bytes.  Compute pos before the loop and check
            total size of the structure.
            * testsuite/libffi.call/nested_struct12.c: New test.

commit f56eb85227bbcc7bd81232a338655146385a77ca
Author: DJ Delorie <dj@delorie.com>
Date:   Tue Jun 15 08:50:20 2021 -0400

    Don't stop test on copy failure (#636)
    
    * Don't stop test on copy failure
    
    Static-library tests were failing only because there were
    no DLLs to copy.  This change makes a copy failure not stop
    the build; if a failed copy would otherwise be relevent, the
    later tests would fail anyway.
    
    While there are more clever ways to solve this, a brute force
    fix is sufficient.
    
    * [TEST] Try cygwin64; install more packages explicitly
    
    * use correct cygwin64 directory name
    
    appveyor has cygwin64 pre-installed in /cygwin64, and 32-bit cygwin
    in /cygwin
    
    * More testing - revert VS change, bump travis timeout
    
    * Add -g to update the rest of perl
    
    * Skip execution tests on non-native platforms
    
    Special site.exp that skips the unix_load() command for arm platforms.
    
    Unset TERM to avoid cruft in stdout
    
    Try harder to find the libffi libraries

commit ff059dd96af6ba4daf7bc9ddf22d1d2dbf6a177b
Author: vhankala <81743325+vhankala@users.noreply.github.com>
Date:   Thu Jun 10 18:41:02 2021 +0000

    Fix build on OpenBSD/mips64 (#638)
    
    The build fails on OpenBSD/mips64 because clang 11's integrated
    assembler expects read-only .eh_frame:
    
    ../src/mips/n32.S:585:9: error: changed section flags for .eh_frame, expected: 0x2
            .section .eh_frame,"aw",@progbits
            ^
    
    Use EH_FRAME_FLAGS to get matching flags for the section.

commit e6eb59cde6580607544160f8e7dedc326b4799fd
Author: Cheng Jin <jincheng@ca.ibm.com>
Date:   Wed Jun 9 16:00:10 2021 -0400

    Add struct test to verify a nested float struct (#640)
    
    The test aims to check a nested float struct
    [float, [float,float]] to see whether it works good
    with libffi.
    
    Signed-off-by: Cheng Jin <jincheng@ca.ibm.com>

commit 6eb38863bc0b21854959ebf845f8672c44a99684
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jun 9 15:45:31 2021 -0400

    Remove reference to old test case

commit ca2235ecfe717ecaed6abbef3a2ca2918a91c60b
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Jun 4 18:20:24 2021 -0400

    Revert appveyor changes

commit 243004cc4c8be552503a5d10710ebb252b406064
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Jun 1 23:00:29 2021 -0400

    Update vs version

commit 04c157f49a1b83798c102f3259bc397b9b7f7266
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Jun 1 22:57:47 2021 -0400

    Upgrade to vs2019

commit 03a78e88402fff424426a1968e014be93666b86f
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Jun 1 22:53:44 2021 -0400

    Try updating automake

commit 1f1829bd4ce19b58d0354db3bef21cb8402cdf82
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Jun 1 22:34:37 2021 -0400

    Bring in the latest version of perl

commit dd5bd03075149d7cf8441875c1a344e8beb57dde
Author: Martin Storsjö <martin@martin.st>
Date:   Wed Apr 7 05:42:10 2021 +0300

    Fix building for arm windows with mingw toolchains (#631)
    
    * arm: Check _WIN32 instead of _M_ARM or _MSC_VER for detecting windows
    
    This matches what was done for ARM64 in
    c06468fa6674d3783a0edb1d0fae9afc8bc28513.
    
    * arm: Only use armasm source when building with MSVC
    
    When building for windows/arm with clang, the normal gas style .S
    source works fine (if fixed up to support thumb and other windows
    specifics).
    
    This matches what was done for ARM64 in
    c06468fa6674d3783a0edb1d0fae9afc8bc28513.
    
    * arm: Fix sysv.S to work in thumb mode
    
    Align cases in jump tables (adding nop padding to make sure each
    case starts where expected).
    
    Rewrite instructions that add directly to the pc register.
    
    For ffi_closure_ret, factor out a call_epilogue subroutine that
    restores both sp and pc from the stack; the thumb version of ldm
    can't load into the sp register. To avoid excessive ifdeffing, keep
    using call_epilogue in arm mode, but keep the shorter "ldm sp, {sp, pc}"
    epilogue in that case.
    
    * arm: Add win32 version of trampoline to sysv.S
    
    This matches the version of it in sysv_msvc_arm32.S. The calling
    C code expects a specific form of the trampoline on windows; make
    sure these work the same on windows regardless of the form of
    assembly used.
    
    * arm: Avoid optimizing out clearing the thumb bit of ffi_arm_trampoline
    
    We clear the thumb bit of ffi_arm_trampoline with a bitmask before
    memcpying its instructions into closure->tramp.
    
    If the bit isn't cleared, the memcpy of the trampoline function
    copies the wrong instructions.
    
    If the ffi_arm_trampoline symbol is declared as an array of int,
    the compiler can assume that it is aligned to a 4 byte boundary
    and the bitmask operation is a no-op, and optimize it out.
    
    See https://godbolt.org/z/dE3jE1WTz; both Clang and GCC optimize
    out the bitmask as it is, while MSVC doesn't. By declaring the
    trampoline as an array of unsigned char, the bitmask works as
    intended.

commit 95ef857d5c6ed15c6c6ba5f8a5b26c0a38b417ab
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Mar 25 10:43:05 2021 -0400

    Verbose brew update.

commit 78c97c9ff4491e14e78992ffabdd043674c05e15
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Mar 25 09:15:37 2021 -0400

    Move container images to quay.io.

commit 58dfdf6a84b98296ceb2b8b4237d37aa75bb2cd4
Author: Sergei Trofimovich <slyfox@gentoo.org>
Date:   Wed Mar 24 23:19:54 2021 +0000

    testsuite: fix compiler vendor detection on dash as /bin/sh (#594)
    
    In https://bugs.gentoo.org/753299 Paolo Pedroni reported
    a single test failure out of all libffi. Here is the minimal
    reproducer:
    
    ```
    $ ./autogen
    $ CONFIG_SHELL=/bin/dash ./configure --host=x86_64-pc-linux-gnu
    $ make check RUNTESTFLAGS='complex.exp'
    ...
    FAIL: libffi.complex/cls_align_complex_float.c (test for excess errors)
    ```
    
    This happens because under 'dash' shell autoconf generates slightly
    different style of string quotation in `config.log`:
    
    - on bash: `ax_cv_c_compiler_vendor=gnu`
    - on dash: `ax_cv_c_compiler_vendor='gnu'`
    
    To avoid shell quotation parsing the change just embeds
    `compiler_vendor` into `local.exp` at configure time.
    
    Reported-by: Paolo Pedroni
    Bug: https://bugs.gentoo.org/753299
    Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>

commit eafab2356e8dcf5f01d2bcfa311cafba3b395a7e
Author: Jeremy Huddleston Sequoia <jeremyhu@users.noreply.github.com>
Date:   Wed Mar 24 11:38:36 2021 -0700

    arm64e: Pull in pointer authentication code from Apple's arm64e libffi port (#565)
    
    NOTES: This changes the ptrauth support from #548 to match what Apple is
           shipping in its libffi-27 tag.
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>

commit 01b56f4b3e89a349228c4ccf55061d847153c8d6
Author: ericLemanissier <ericLemanissier@users.noreply.github.com>
Date:   Wed Mar 24 12:20:27 2021 +0100

    fix windows tests (#595)
    
    * Update .appveyor.yml
    
    * add (debug+release)*(shared+static) CI
    
    * fix libversion

commit 1aeb26714ec30649f5d9de5b4884a4ac46f5f474
Author: Ole André Vadla Ravnås <oleavr@gmail.com>
Date:   Wed Mar 24 12:16:12 2021 +0100

    x86: Fix thiscall and fastcall stack cleanup behavior (#611)
    
    These are meant to use callee clean-up.

commit e92c81a549924c80d70666ecbe5ed0c2fcd7963a
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Mar 24 07:07:53 2021 -0400

    Mention MSVC runtime stack checking improvement

commit f88add14e40de398706c732e578620e8106062c7
Author: Ole André Vadla Ravnås <oleavr@gmail.com>
Date:   Wed Mar 24 12:04:51 2021 +0100

    x86: Fix MSVC runtime checks interop (#612)
    
    MSVC can add runtime code that checks if a stack frame is mismanaged,
    however our custom assembly deliberately accesses and modifies the parent
    stack frame.  Fortunately we can disable that specific check for the
    function call so do that.
    
    Co-authored-by: Matthew Waters <matthew@centricular.com>

commit aa4dafb159a2e0f74aa39353a1bf23a943f36656
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 23 19:06:08 2021 -0400

    Mention LIBFFI_TMPDIR

commit 70ea259c603e0f84eda766be29d4259f1e8fe5b7
Author: DJ Delorie <dj@delorie.com>
Date:   Tue Mar 23 19:03:45 2021 -0400

    Search $LIBFFI_TMPDIR also (#605)
    
    Most temp file directories need to be hardened against execution, but
    libffi needs execute privileges.  Add a libffi-specific temp directory
    that can be set up by sysadmins as needed with suitable permissions.
    This both ensures that libffi will have a valid temp directory to use
    as well as preventing attempts to access other directories.

commit f58e5ee63263657a7e8f2892d27c012a16facc1a
Author: AndreRH <andre.hentschel@ok.de>
Date:   Tue Mar 23 23:54:00 2021 +0100

    aarch64: Fix closures for win64 (#606)

commit 5865450decd13275b2bde064bd4a0f79bca6dba2
Author: Francisco Boni <boboniboni@gmail.com>
Date:   Tue Mar 23 19:50:09 2021 -0300

    Update ax_cc_maxopt m4 macro (#617)
    
    Keeps libffi's specific changes
    (https://github.com/libffi/libffi/commit/cec3a3a201f17a7f018f25e1a0917bd5206e5a5a#diff-2396a1256ac4b1c6849c931ddb8018bdd984bb2383be21bb819a33b95d8d603f)
    and updates to the latest ax_cc_maxopt.m4
    (http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=commit;h=73ee1b396c21062ee8eeb8721ba5323322110fb5):
    
    ax_cc_maxopt.m4: retain setting of CFLAGS by configure
    
    AX_CC_MAXOPT checks whether CFLAGS was set by the user; if so, the user’s
    setting is respected. This behavior is retained, of course.
    
    However, AX_CC_MAXOPT was then setting CFLAGS="". This overrode the default
    setting by configure, which usually includes -g. Hence, if CFLAGS was not
    set by the user, retain the default setting, to preserve the ability to
    debug.
    
    A typical default setting from configure is "-g -O2". This means that
    AX_CC_MAXOPT might typically set CFLAGS to "-g -O2 -O3". This is fine,
    because the later -O3 will override the earlier -O2. (The only assumption is
    that all compilers that AX_CC_MAXOPT knows behave in this sane way.)

commit 8f44384df17b536615caef951a615655a967103f
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 23 14:24:54 2021 -0400

    Fix formatting

commit 9d491b5e21ffd7fcf2370d998a4832b755d1c9e9
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 23 12:26:37 2021 -0400

    Mention KVX

commit 205cf01b57972fdc8c090fc79192b464dc43fc0d
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 23 11:31:08 2021 -0400

    Bug #680.  Don't accept floats or small ints as var args. (#628)
    
    * Bug #680.  Don't accept floats or small ints as var args.
    
    * Bug #680.  Don't accept floats or small ints as var args.
    
    * Bug #680.  Don't accept floats or small ints as var args.

commit d271dbe0a8b230e566fa3385babdc9cc0ca214ea
Author: Jeremy Huddleston Sequoia <jeremyhu@users.noreply.github.com>
Date:   Sat Mar 20 06:06:28 2021 -0700

    Add some missing #if conditionals from Apple's code drop (#620)
    
    * arm/aarch64: Add FFI_CLOSURES conditionals where appropriate
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
    
    * aarch64: Don't emit the do_closure label when building without FFI_GO_CLOSURES
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>

commit bae695da367b6abd83152f8f1e9b1a8b79794c8d
Author: Russell Keith-Magee <russell@keith-magee.com>
Date:   Sat Mar 6 00:09:17 2021 +0800

    Add configuration generator for tvOS and watchOS. (#625)

commit 9ba559217bea0803263a9a9a0bafcf9203606f5b
Author: Madhavan T. Venkataraman <75220914+madvenka786@users.noreply.github.com>
Date:   Fri Mar 5 10:07:30 2021 -0600

    Static tramp v5 (#624)
    
    * Static Trampolines
    
    Closure Trampoline Security Issue
    =================================
    
    Currently, the trampoline code used in libffi is not statically defined in
    a source file (except for MACH). The trampoline is either pre-defined
    machine code in a data buffer. Or, it is generated at runtime. In order to
    execute a trampoline, it needs to be placed in a page with executable
    permissions.
    
    Executable data pages are attack surfaces for attackers who may try to
    inject their own code into the page and contrive to have it executed. The
    security settings in a system may prevent various tricks used in user land
    to write code into a page and to have it executed somehow. On such systems,
    libffi trampolines would not be able to run.
    
    Static Trampoline
    =================
    
    To solve this problem, the trampoline code needs to be defined statically
    in a source file, compiled and placed in the text segment so it can be
    mapped and executed naturally without any tricks. However, the trampoline
    needs to be able to access the closure pointer at runtime.
    
    PC-relative data referencing
    ============================
    
    The solution implemented in this patch set uses PC-relative data references.
    The trampoline is mapped in a code page. Adjacent to the code page, a data
    page is mapped that contains the parameters of the trampoline:
    
            - the closure pointer
            - pointer to the ABI handler to jump to
    
    The trampoline code uses an offset relative to its current PC to access its
    data.
    
    Some architectures support PC-relative data references in the ISA itself.
    E.g., X64 supports RIP-relative references. For others, the PC has to
    somehow be loaded into a general purpose register to do PC-relative data
    referencing. To do this, we need to define a get_pc() kind of function and
    call it to load the PC in a desired register.
    
    There are two cases:
    
    1. The call instruction pushes the return address on the stack.
    
       In this case, get_pc() will extract the return address from the stack
       and load it in the desired register and return.
    
    2. The call instruction stores the return address in a designated register.
    
       In this case, get_pc() will copy the return address to the desired
       register and return.
    
    Either way, the PC next to the call instruction is obtained.
    
    Scratch register
    ================
    
    In order to do its job, the trampoline code would need to use a scratch
    register. Depending on the ABI, there may not be a register available for
    scratch. This problem needs to be solved so that all ABIs will work.
    
    The trampoline will save two values on the stack:
    
            - the closure pointer
            - the original value of the scratch register
    
    This is what the stack will look like:
    
            sp before trampoline ------>    --------------------
                                            | closure pointer  |
                                            --------------------
                                            | scratch register |
            sp after trampoline ------->    --------------------
    
    The ABI handler can do the following as needed by the ABI:
    
            - the closure pointer can be loaded in a desired register
    
            - the scratch register can be restored to its original value
    
            - the stack pointer can be restored to its original value
              (the value when the trampoline was invoked)
    
    To do this, I have defined prolog code for each ABI handler. The legacy
    trampoline jumps to the ABI handler directly. But the static trampoline
    defined in this patch jumps tp the prolog code which performs the above
    actions before jumping to the ABI handler.
    
    Trampoline Table
    ================
    
    In order to reduce the trampoline memory footprint, the trampoline code
    would be defined as a code array in the text segment. This array would be
    mapped into the address space of the caller. The mapping would, therefore,
    contain a trampoline table.
    
    Adjacent to the trampoline table mapping, there will be a data mapping that
    contains a parameter table, one parameter block for each trampoline. The
    parameter block will contain:
    
            - a pointer to the closure
            - a pointer to the ABI handler
    
    The static trampoline code would finally look like this:
    
            - Make space on the stack for the closure and the scratch register
              by moving the stack pointer down
            - Store the original value of the scratch register on the stack
            - Using PC-relative reference, get the closure pointer
            - Store the closure pointer on the stack
            - Using PC-relative reference, get the ABI handler pointer
            - Jump to the ABI handler
    
    Mapping size
    ============
    
    The size of the code mapping that contains the trampoline table needs to be
    determined on a per architecture basis. If a particular architecture
    supports multiple base page sizes, then the largest supported base page size
    needs to be chosen. E.g., we choose 16K for ARM64.
    
    Trampoline allocation and free
    ==============================
    
    Static trampolines are allocated in ffi_closure_alloc() and freed in
    ffi_closure_free().
    
    Normally, applications use these functions. But there are some cases out
    there where the user of libffi allocates and manages its own closure
    memory. In such cases, static trampolines cannot be used. These will
    fall back to using legacy trampolines. The user has to make sure that
    the memory is executable.
    
    ffi_closure structure
    =====================
    
    I did not want to make any changes to the size of the closure structure for
    this feature to guarantee compatibility. But the opaque static trampoline
    handle needs to be stored in the closure. I have defined it as follows:
    
    -  char tramp[FFI_TRAMPOLINE_SIZE];
    +  union {
    +    char tramp[FFI_TRAMPOLINE_SIZE];
    +    void *ftramp;
    +  };
    
    If static trampolines are used, then tramp[] is not needed to store a
    dynamic trampoline. That space can be reused to store the handle. Hence,
    the union.
    
    Architecture Support
    ====================
    
    Support has been added for x64, i386, aarch64 and arm. Support for other
    architectures can be added very easily in the future.
    
    OS Support
    ==========
    
    Support has been added for Linux. Support for other OSes can be added very
    easily.
    
    Signed-off-by: Madhavan T. Venkataraman <madvenka@linux.microsoft.com>
    
    * x86: Support for Static Trampolines
    
            - Define the arch-specific initialization function ffi_tramp_arch ()
              that returns trampoline size information to common code.
    
            - Define the trampoline code mapping and data mapping sizes.
    
            - Define the trampoline code table statically. Define two tables,
              actually, one with CET and one without.
    
            - Introduce a tiny prolog for each ABI handling function. The ABI
              handlers addressed are:
    
                    - ffi_closure_unix64
                    - ffi_closure_unix64_sse
                    - ffi_closure_win64
    
              The prolog functions are called:
    
                    - ffi_closure_unix64_alt
                    - ffi_closure_unix64_sse_alt
                    - ffi_closure_win64_alt
    
              The legacy trampoline jumps to the ABI handler. The static
              trampoline jumps to the prolog function. The prolog function uses
              the information provided by the static trampoline, sets things up
              for the ABI handler and then jumps to the ABI handler.
    
            - Call ffi_tramp_set_parms () in ffi_prep_closure_loc () to
              initialize static trampoline parameters.
    
    Signed-off-by: Madhavan T. Venkataraman <madvenka@linux.microsoft.com>
    
    * i386: Support for Static Trampolines
    
            - Define the arch-specific initialization function ffi_tramp_arch ()
              that returns trampoline size information to common code.
    
            - Define the trampoline code table statically. Define two tables,
              actually, one with CET and one without.
    
            - Define the trampoline code table statically.
    
            - Introduce a tiny prolog for each ABI handling function. The ABI
              handlers addressed are:
    
                    - ffi_closure_i386
                    - ffi_closure_STDCALL
                    - ffi_closure_REGISTER
    
              The prolog functions are called:
    
                    - ffi_closure_i386_alt
                    - ffi_closure_STDCALL_alt
                    - ffi_closure_REGISTER_alt
    
              The legacy trampoline jumps to the ABI handler. The static
              trampoline jumps to the prolog function. The prolog function uses
              the information provided by the static trampoline, sets things up
              for the ABI handler and then jumps to the ABI handler.
    
            - Call ffi_tramp_set_parms () in ffi_prep_closure_loc () to
              initialize static trampoline parameters.
    
    Signed-off-by: Madhavan T. Venkataraman <madvenka@linux.microsoft.com>
    
    * arm64: Support for Static Trampolines
    
            - Define the arch-specific initialization function ffi_tramp_arch ()
              that returns trampoline size information to common code.
    
            - Define the trampoline code mapping and data mapping sizes.
    
            - Define the trampoline code table statically.
    
            - Introduce a tiny prolog for each ABI handling function. The ABI
              handlers addressed are:
    
                    - ffi_closure_SYSV
                    - ffi_closure_SYSV_V
    
              The prolog functions are called:
    
                    - ffi_closure_SYSV_alt
                    - ffi_closure_SYSV_V_alt
    
              The legacy trampoline jumps to the ABI handler. The static
              trampoline jumps to the prolog function. The prolog function uses
              the information provided by the static trampoline, sets things up
              for the ABI handler and then jumps to the ABI handler.
    
            - Call ffi_tramp_set_parms () in ffi_prep_closure_loc () to
              initialize static trampoline parameters.
    
    Signed-off-by: Madhavan T. Venkataraman <madvenka@linux.microsoft.com>
    
    * arm: Support for Static Trampolines
    
            - Define the arch-specific initialization function ffi_tramp_arch ()
              that returns trampoline size information to common code.
    
            - Define the trampoline code mapping and data mapping sizes.
    
            - Define the trampoline code table statically.
    
            - Introduce a tiny prolog for each ABI handling function. The ABI
              handlers addressed are:
    
                    - ffi_closure_SYSV
                    - ffi_closure_VFP
    
              The prolog functions are called:
    
                    - ffi_closure_SYSV_alt
                    - ffi_closure_VFP_alt
    
              The legacy trampoline jumps to the ABI handler. The static
              trampoline jumps to the prolog function. The prolog function uses
              the information provided by the static trampoline, sets things up
              for the ABI handler and then jumps to the ABI handler.
    
            - Call ffi_tramp_set_parms () in ffi_prep_closure_loc () to
              initialize static trampoline parameters.
    
    Signed-off-by: Madhavan T. Venkataraman <madvenka@linux.microsoft.com>

commit 5c63b463b87d3c06102a4a7f05f395929d9ea79b
Author: DJ Delorie <dj@delorie.com>
Date:   Wed Dec 2 16:14:27 2020 -0500

    Use memfd_create() (#604)
    
    memfd_create creates a file in a memory-only filesystem that may
    bypass strict security protocols in filesystem-based temporary
    files.

commit cb8474368cdef3207638d047bd6c707ad8fcb339
Author: hjl-tools <hjl.tools@gmail.com>
Date:   Wed Dec 2 12:52:12 2020 -0800

    libffi/x86: Always check __x86_64__ for x32 hosts (#601) (#602)
    
    Since for x86_64-*x32 and x86_64-x32-* hosts, -m32 generates ia32 codes.
    We should always check __x86_64__ for x32 hosts.

commit e70bf987daa7b7b5df2de7579d5c51a888e8bf7d
Author: Tres Finocchiaro <tres.finocchiaro@gmail.com>
Date:   Tue Nov 24 19:13:57 2020 -0500

    Properly quote and resolve msvcc.sh params (#596)

commit 8cc8f446f5aac13e107161dffbc15d1ee1a58878
Author: Mike Hommey <mh@glandium.org>
Date:   Tue Nov 10 20:41:33 2020 +0900

    Allow to build with mingw-clang (#579)
    
    For some reason, compiling sysv.S with mingw-clang fails with:
    ```
    error: invalid variant 'ffi_closure_inner@8'
    ```
    
    This can be fixed (worked around?) by quoting the symbol. This works
    fine with mingw-gcc too.

commit d817d0daa312c58548d7a081aa876027ca103766
Author: Mike Hommey <mh@glandium.org>
Date:   Tue Nov 10 20:39:25 2020 +0900

    Don't use FFI_TYPE_LONGDOUBLE in the jump table in win64*.S (#580)
    
    It may have the same value as FFI_TYPE_DOUBLE per ffi.h, which
    possibly can make things go wrong with .org/ORG.
    
    For instance, GCC complains about "Error: attempt to move .org
    backwards"

commit 56f7df711f70414d4f3663b34e54b122b38bab88
Author: AndreRH <andre.hentschel@ok.de>
Date:   Tue Nov 10 12:27:59 2020 +0100

    aarch64: Allow FFI_WIN64 for winelib (#593)

commit 8111cd06921e80d5d7192ce8d1f64733072fdbcd
Author: Brandon Bergren <git@bdragon.rtk0.net>
Date:   Tue Oct 27 09:07:38 2020 -0500

    Add support for powerpc64le-*-freebsd*. (#581)
    
    Tests pass with no additional changes needed, tested on hardware.

commit 484c1a0d7536be60002473f7bb82223efe139883
Author: Ken <21211439+kencu@users.noreply.github.com>
Date:   Tue Oct 27 07:07:07 2020 -0700

    darwin powerpc: use go closures only if enabled (#583)
    
    SHA: 0ff9419f2e75652426469e256cb7d0748064ad58 added go closures for darwin powerpc AIX, but
    these have not yet been implemented for non-AIX systems
    
    use the go closures only if enabled

commit 032b3cd6f7850f3ebc1269eeab7d1db3ea518d29
Author: Jeremy Huddleston Sequoia <jeremyhu@users.noreply.github.com>
Date:   Tue Oct 27 07:06:21 2020 -0700

    Support building x86 and arm64 without FFI_GO_CLOSURES (#586)
    
    * x86: Support building without FFI_GO_CLOSURES
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
    
    * arm: Support building without FFI_GO_CLOSURES
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>

commit 93cf288ddd59c7cb203c1aba25de5e5b8f308da6
Author: Jeremy Huddleston Sequoia <jeremyhu@users.noreply.github.com>
Date:   Tue Oct 27 07:05:28 2020 -0700

    testsuite: Add a missing include of <inttypes.h> to fix build failure in test suite (#587)
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>

commit c78fcf88ab13a5cc414826a018dd46c3f886adee
Author: petersn <schmidtnielsenpeter@gmail.com>
Date:   Tue Oct 27 07:02:36 2020 -0700

    Removing unnecessary instruction from ffi_call_unix64 (#588)
    
    unix64.S's `ffi_call_unix64` looks like it used to take six parameters,
    where the sixth said the number of SSE register arguments. However,
    currently the function only takes five parameters, and the number of SSE
    register arguments is encoded in the `struct register_args *` passed as
    the first parameter to `ffi_call_unix64`. This change removes an
    instruction that tries to use this missing sixth parameter as the number
    of SSE arguments.
    
    This fix should not change any behavior, nor fix any bugs, because a few
    instructions later the value moved from %r9d into %eax is overwritten by
    the correct value anyway. This change merely makes the code a tad less
    confusing, because currently the assembly moves from a register (r9)
    whose value is never set.

commit 2d86809db6d1d626a9df40c283ec564ac98ff85d
Author: jacobly0 <jacobly0@users.noreply.github.com>
Date:   Tue Oct 27 10:00:03 2020 -0400

    Fix read-only .eh_frame section test when CFLAGS contains -flto. (#590)

commit f4435980fa2da335fe388db431d4a7946a99a2b9
Author: Alan Modra <amodra@gmail.com>
Date:   Tue Oct 27 23:36:21 2020 +1030

    Power10 libffi fixes (#585)
    
    Power10 pc-relative code doesn't use or preserve r2 as a TOC pointer.
    That means calling between pc-relative and TOC using code can't be
    done without intervening linker stubs, and a call from TOC code to
    pc-relative code must have a nop after the bl in order to restore r2.
    
    Now the PowerPC libffi assembly code doesn't use r2 except for the
    implicit use when making calls back to C, ffi_closure_helper_LINUX64
    and ffi_prep_args64.  So changing the assembly to interoperate with
    pc-relative code without stubs is easily done.
    
            * src/powerpc/linux64.S (ffi_call_LINUX64): Don't emit global
            entry when __PCREL__.  Call using @notoc.  Add nops.
            * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Likewise.
            (ffi_go_closure_linux64): Likewise.

commit 407394c0aac2db4a1978a7691035889db9924a01
Author: Tim Gates <tim.gates@iress.com>
Date:   Sun Oct 11 15:07:40 2020 +1100

    docs: fix simple typo, paramters -> parameters (#589)
    
    There is a small typo in src/x86/ffi.c.
    
    Should read `parameters` rather than `paramters`.

commit ead65ca8711aa07efc0453f67136aff82f33c01f
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Aug 19 08:34:09 2020 -0400

    Re-enable s390x testing

commit 8276f812a99b10d1f2c387dbd6ef2ca4f597c733
Author: Niclas Zeising <zeising+github@daemonic.se>
Date:   Fri Aug 7 21:05:23 2020 +0200

    Upstream local FreeBSD patches (#567)
    
    * Add support for FreeBSD mips
    
    Add support for FreeBSD mips, this has been a local patch in the FreeBSD
    ports tree for quite some time.
    
    Originally submitted by sson, and committed by sbruno AT FreeBSD DOT org
    See https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=191909 for
    background details.
    
    Signed-off-by: Niclas Zeising <zeising@daemonic.se>
    
    * Add support for FreeBSD powerpcspe
    
    Add support for powerpcspe on FreeBSD
    This has been in the FreeBSD ports tree for some time.
    Originally submitted by jhibbits AT FreeBSD DOT org.
    
    Signed-off-by: Niclas Zeising <zeising@daemonic.se>
    
    * Fix abort() on FreeBSD arm related to __clear_cache()
    
    This patch has been in the FreeBSD ports tree for a number of years.
    Original commit by koobs AT FreeBSD DOT org
    
    Original commit message:
    > devel/libffi: Fix abort() on ARM related to __clear_cache()
    >
    > The current FreeBSD/ARM __clear_cache() implementation does nothing #if
    > __i386__ || __x86_64__ #else abort();
    >
    > cognet@ advises this is an issue for anything !Apple that is using the
    > libcompiler_rt provided by Clang on ARM, and requires upstreaming.
    
    See https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=149167 for some
    background details.
    
    Signed-off-by: Niclas Zeising <zeising@daemonic.se>

commit 392afbaf60663e530bd740da0b5a39ee9f4ba052
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Aug 5 21:38:51 2020 -0400

    Don't test s390.  Travis-ci is broken.

commit e08eb1ced18598a26cd7f14fea05693e89638ed2
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Aug 5 17:59:59 2020 -0400

    Add support for eabisim back.  This was removed upstream.

commit 4661ba7928b49588aec9e6976673208c8cbf0295
Merge: 45875da 1a4b786
Author: Tom Tromey <tom@tromey.com>
Date:   Tue Aug 4 11:08:19 2020 -0600

    Merge pull request #576 from froydnj/config-updates
    
    update config.{guess,sub}

commit 1a4b786df34b61af7b6738a2ce7b8d34f5377a71
Author: Nathan Froyd <froydnj@gmail.com>
Date:   Tue Aug 4 12:17:04 2020 -0400

    update config.{guess,sub}
    
    This change is primarily for aarch64 macOS support, since that configuration
    is now properly supported upstream.

commit 45875da4bc71578f6f45471141c14e1743239b7e
Merge: fbd1de8 8e58f88
Author: Tom Tromey <tom@tromey.com>
Date:   Wed Jul 1 09:32:37 2020 -0600

    Merge pull request #570 from jwilk-forks/spelling
    
    aarch64: Fix typo

commit 8e58f88d33eb878b0fbca1433f83bbf872d5d0f3
Author: Jakub Wilk <jwilk@jwilk.net>
Date:   Tue Jun 30 22:59:28 2020 +0200

    aarch64: Fix typo

commit fbd1de85f6532f8a8f61abbd7892f8cb58b233d0
Author: Ma Jun <majun258@linux.alibaba.com>
Date:   Mon Jun 29 08:02:20 2020 -0400

    Add support for csky

commit 0027b072627aa9d3ada71c4374561966064ecd5a
Author: M. Herdiansyah <herdiansyah@netc.eu>
Date:   Thu Jun 11 19:40:24 2020 +0700

    Makefile: increase compatibility with bmake (#551)

commit b7af8f47d5fff2957521dc269637c00b8a4b6c75
Author: Andre Miras <AndreMiras@users.noreply.github.com>
Date:   Thu Jun 11 14:38:59 2020 +0200

    Fixes macOS build on Python 3 (#563)
    
    The error was:
    ```
    Traceback (most recent call last):
      File "_generate-darwin-source-and-headers.py", line 209, in <module>
        generate_source_and_headers(generate_osx=not args.only_ios, generate_ios=not args.only_osx)
      File "_generate-darwin-source-and-headers.py", line 197, in generate_source_and_headers
        for header_name, tag_tuples in platform_headers.iteritems():
    AttributeError: 'collections.defaultdict' object has no attribute 'iteritems'
    ```

commit 5c45c40c04f89cf67ade3fdfa99915ca5409e51a
Author: Kentaro Hayashi <kenhys@gmail.com>
Date:   Thu Jun 11 21:37:41 2020 +0900

    Fix Free software foundation address (#564)
    
    ref. https://www.fsf.org/about/contact/

commit 2e90bb5577ea1fe3bc1716954e790999bc3549f7
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Jun 7 14:31:06 2020 -0400

    Add gcc bug tests back

commit 5e6ca054148dfb4d78e6f79457d48b745f919def
Author: Yann Sionneau <yann@sionneau.net>
Date:   Fri May 1 13:59:11 2020 +0200

    Add support for Kalray KVX architecture (#559)

commit 4f9e20ac51ce13d46fed3c869e1deb6d9bb89444
Author: Andrew Geissler <geissonator@users.noreply.github.com>
Date:   Fri May 1 06:58:30 2020 -0500

    ffi_powerpc.h: fix build failure with powerpc7 (#561)
    
    This is a patch pulled down from the following:
    https://github.com/buildroot/buildroot/blob/78926f610b1411b03464152472fd430012deb9ac/package/libffi/0004-ffi_powerpc.h-fix-build-failure-with-powerpc7.patch
    
    This issue is being hit on OpenBMC code when pulling the latest
    libffi tag and building on a P8 ppc64le machine. I verified this
    patch fixes the issue we are seeing.
    
    Below is the original commit message:
    
    Sicne commit 73dd43afc8a447ba98ea02e9aad4c6898dc77fb0, build on powerpc7
    fails on:
    
    In file included from ../src/powerpc/ffi.c:33:0:
    ../src/powerpc/ffi_powerpc.h:61:9: error: '_Float128' is not supported on this target
     typedef _Float128 float128;
             ^~~~~~~~~
    
    Fix this build failure by checking for __HAVE_FLOAT128 before using
    _Float128, as _Float128 is enabled only on specific conditions, see
    output/host/powerpc64-buildroot-linux-gnu/sysroot/usr/include/bits/floatn.h:
    
     /* Defined to 1 if the current compiler invocation provides a
        floating-point type with the IEEE 754 binary128 format, and this glibc
        includes corresponding *f128 interfaces for it.  */
     #if defined _ARCH_PWR8 && defined __LITTLE_ENDIAN__ && (_CALL_ELF == 2) \
         && defined __FLOAT128__ && !defined __NO_LONG_DOUBLE_MATH
     # define __HAVE_FLOAT128 1
     #else
     # define __HAVE_FLOAT128 0
     #endif
    
    Fixes:
     - http://autobuild.buildroot.org/results/5c9dd8fb3b6a128882b6250f197c80232d8a3b53
    
    Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
    Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
    
    Co-authored-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>

commit 053b04c525a00abdc25ec646096a44208a1b9423
Author: Martin Storsjö <martin@martin.st>
Date:   Sun Apr 26 05:02:14 2020 +0300

    arm: Fix the clang specific version of the assembly (#556)
    
    Also fix the same error in the comment for the non-clang case.
    That typo there seems to have existed since the code was written
    in that form, in e7f15f60e86 - and when the clang specific codepath
    was added in e3d2812ce43, the typo in the comment made it into the
    actual code.

commit c543849c3767cc0f0a84e3ed7b664a63724ed516
Author: Martin Storsjö <martin@martin.st>
Date:   Sun Apr 26 05:01:03 2020 +0300

    win64_armasm: Fix the spelling of ALIGN (#553)

commit 15d3ea31a53bd0e5b828c90a9f7c4285c58f73e1
Author: Martin Storsjö <martin@martin.st>
Date:   Sun Apr 26 04:59:35 2020 +0300

    Use __builtin_ffs instead of ffs (#554)
    
    USE_BUILTIN_FFS is defined to 1 within __GNUC__, and the __builtin_ffs
    function is available since GCC 3.x at least, while the ffs function
    only exists on some OSes.
    
    This fixes compilation for non-x86 mingw platforms. For x86,
    USE_BUILTIN_FFS is explicitly disabled for windows targets - but
    if USE_BUILTIN_FFS is enabled based on __GNUC__, it should also use
    the builtin which actually is available correspondingly, not dependent
    on the target OS.

commit c06468fa6674d3783a0edb1d0fae9afc8bc28513
Author: Martin Storsjö <martin@martin.st>
Date:   Sun Apr 26 04:58:33 2020 +0300

    Fix building for aarch64 windows with mingw toolchains (#555)
    
    * aarch64: Check _WIN32 instead of _M_ARM64 for detecting windows
    
    This fixes building for aarch64 with mingw toolchains. _M_ARM64 is
    predefined by MSVC, while mingw compilers predefine __aarch64__.
    
    In aarch64 specific code, change checks for _M_ARM64 into checks for
    _WIN32.
    
    In arch independent code, check for
    (defined(_M_ARM64) || defined(__aarch64__)) && defined(_WIN32)
    instead of just _M_ARM64.
    
    In src/closures.c, coalesce checks like
    defined(X86_WIN32) || defined(X86_WIN64) || defined(_M_ARM64)
    into plain defined(_WIN32). Technically, this enables code for
    ARM32 windows where it wasn't, but as far as I can see it, those
    codepaths should be fine for that architecture variant as well.
    
    * aarch64: Only use armasm source when building with MSVC
    
    When building for windows/arm64 with clang, the normal gas style .S
    source works fine. sysv.S and win64_armasm.S seem to be functionally
    equivalent, with only differences being due to assembler syntax.

commit 8c50837f0b58ba5b2bcb1b424a2a4bfa01559fb2
Author: Fangrui Song <i@maskray.me>
Date:   Tue Mar 10 04:36:09 2020 -0700

    Improve read-write .eh_frame check (#546)
    
    llvm-objdump -h does not print BFD SEC_* constants like "READONLY",
    so the check will consider .eh_frame writable.
    clang 11 (since https://reviews.llvm.org/D73999) will error for mismatching section flags.
    
    Use readelf -S and check "WA" instead.

commit 4a6414f2785a60f455c91fdd04f7745fe7fc11e0
Author: Moxie Bot <bot@moxielogic.com>
Date:   Mon Mar 9 21:10:53 2020 -0400

    Mention ARM Pointer Authentication

commit 909b37ffffe2a0bb08947b07508a3a4eed5f36a8
Author: Moxie Bot <bot@moxielogic.com>
Date:   Mon Mar 9 21:10:33 2020 -0400

    Test on aarch64 Linux with clang

commit 4c7bde32ea3af479babdf527d94f241282951cb9
Author: Ole André Vadla Ravnås <oleavr@gmail.com>
Date:   Tue Mar 10 02:05:42 2020 +0100

    Port to iOS/arm64e (#548)

commit 211e929df4388a6724b0dba4df4e3a1283dc49e9
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Mar 9 12:39:22 2020 -0400

    Try to fix RLGL_KEY nonsense (#547)
    
    * Try to fix RLGL_KEY nonsense
    
    * Hard code policy bound API key
    
    Co-authored-by: Anthony Green <green@moxielogic.com>

commit 8eb2d2b05626b1cbbed100725bc440709499e8a6
Author: Moxie Bot <bot@moxielogic.com>
Date:   Mon Feb 24 10:29:20 2020 -0500

    Revamp PA_LINUX and PA_HPUX target closures to use function descriptors.
    
            2020-02-23  John David Anglin  <danglin@gcc.gnu.org>
    
            * include/ffi.h.in (FFI_CLOSURE_PTR, FFI_RESTORE_PTR): Define.
            * src/closures.c (ffi_closure_alloc): Convert closure pointer
            return by malloc to function pointer.
            (ffi_closure_free): Convert function pointer back to malloc pointer.
            * src/pa/ffi.c (ffi_closure_inner_pa32): Use union to double word
            align return address on stack.  Adjust statements referencing return
            address.  Convert closure argument from function pointer to standard
            closure pointer.
            (ffi_prep_closure_loc): Likewise convert closure argument back to
            closure pointer.  Remove assembler trampolines.  Setup simulated
            function descriptor as on ia64.
            src/pa/ffitarget.h (FFI_TRAMPOLINE_SIZE): Reduce to 12.
            src/pa/hpux32.S (ffi_closure_pa32): Retrieve closure pointer and real
            gp from fake gp value in register %r19.
            src/pa/linux.S (ffi_closure_pa32): Likewise.

commit be815544c1588c6ca70120361c168b196376aa56
Author: hjl-tools <hjl.tools@gmail.com>
Date:   Sun Feb 23 07:45:42 2020 -0800

    Update the ABI version to LIBFFI_BASE_8.0 (#544)
    
    Since x86 and x86-64 FFI_TRAMPOLINE_SIZE have been increased, we must
    bump the ABI version.  This fixes:
    
    https://github.com/libffi/libffi/issues/543

commit d9abffeabe4f38bac12b864146cf974ede814411
Author: hjl-tools <hjl.tools@gmail.com>
Date:   Sat Feb 22 06:32:22 2020 -0800

    x86: Fix ffi_prep_closure_loc (#542)
    
    Since FFI_TRAMPOLINE_SIZE is increased by 4 bytes to add ENDBR32, adjust
    jump displacement by 4 bytes.

commit 624c7a35f7e1d12f917453d6c657cd5947ac57f7
Merge: 4c775d7 7855656
Author: Moxie Bot <bot@moxielogic.com>
Date:   Fri Feb 21 22:13:14 2020 -0500

    Merge branch 'master' of github.com:/libffi/libffi

commit 4c775d7cd6e914c6a2f66465497106cff360aeb5
Author: Moxie Bot <bot@moxielogic.com>
Date:   Fri Feb 21 22:12:34 2020 -0500

    Update for pending 3.4 release.

commit 7855656148b96c7070ec362d2a73af840025a2b7
Author: hjl-tools <hjl.tools@gmail.com>
Date:   Fri Feb 21 19:08:06 2020 -0800

    x86: Add indirect branch tracking support (#540)
    
    Intel Control-flow Enforcement Technology (CET):
    
    https://software.intel.com/en-us/articles/intel-sdm
    
    contains shadow stack (SHSTK) and indirect branch tracking (IBT).  When
    CET is enabled, ELF object files must be marked with .note.gnu.property
    section.  When Intel CET is enabled, include <cet.h> in assembly codes
    to mark Intel CET support.
    
    Also when IBT is enabled, all indirect branch targets must start with
    ENDBR instruction and notrack prefix can be used to disable IBT on
    indirect branch.  <cet.h> defines _CET_ENDBR which can be used in
    assembly codes for ENDBR instruction.  If <cet.h> isn't included,
    define _CET_ENDBR as empty so that _CET_ENDBR can be used in assembly
    codes.
    
    Trampoline must be enlarged to add ENDBR instruction unconditionally,
    which is NOP on non-CET processors.  This is required regardless if
    libffi is enabled with CET since libffi.so will be marked in legacy
    bitmap, but trampoline won't.  Update library version for larger
    FFI_TRAMPOLINE_SIZE.
    
    This fixed:
    
    https://github.com/libffi/libffi/issues/474
    
    Tested with
    
    $ CC="gcc -Wl,-z,cet-report=error -fcf-protection" CXX="g++ -Wl,-z,cet-report=error -fcf-protection" .../configure
    
    on Linux CET machines in i686, x32 and x86-64 modes.

commit 4d6d2866ae43e55325e8ee96561221804602cd7a
Author: Samuel Holland <samuel@sholland.org>
Date:   Fri Feb 21 21:06:15 2020 -0600

    Update powerpc sysv assembly for ffi_powerpc.h changes (#541)
    
    Some of the flag bits were moved when adding powerpc64 vector support.
    
    Fixes #536

commit b844a9c7f1ca792a1dfb0c09d5dae576178e6729
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Jan 10 10:22:10 2020 -0500

    Update copyright year.

commit 81b5491a4ef46103f2e1be79d368e76dba021ffa
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Jan 5 21:37:05 2020 -0500

    Fix script

commit 1e08a45535d929915e14e48af38e45f8c8e4f8de
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Jan 5 21:18:23 2020 -0500

    Use rlgl API key on login

commit e50b9ef8b910fa642ef158f6642e60d54d7ad740
Author: Khem Raj <raj.khem@gmail.com>
Date:   Sat Dec 7 02:34:14 2019 -0800

    powerpc64: Use memcpy to help platforms with no __int128. (#534)
    
    Signed-off-by: Khem Raj <raj.khem@gmail.com>

commit f9da75e157ab089363d079a781644c3e6f7db2c3
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 30 07:37:19 2019 -0500

    Remove 32-bit x86 file references to fix macosx builds

commit 76c0cfea70f78586231d7994492396eebfb12d5f
Author: Carl Hurd <carl.m.hurd@gmail.com>
Date:   Fri Nov 29 14:46:11 2019 -0500

    Fixed missed #ifndef for __mips_soft_float (#442)
    
    Thank you!

commit 98da256096c63406ef77f92369ada622c50ce388
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Nov 29 14:29:51 2019 -0500

    Clean up macosx builds

commit 6663047f56c2932a6b10a790f4ac6666dd181326
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Nov 29 07:00:35 2019 -0500

    Address platforms with no __int128.

commit 0069526c5adea9e6268b8a0087a6120c9c5c89fa
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Nov 28 18:58:40 2019 -0500

    Make build errors easier to debug

commit 43887a9108f10124d05c8e0e67f3942cd980cb86
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Nov 28 17:44:51 2019 -0500

    Add powerpc-eabi

commit 29297445da5c2c9437de0e20f3189799a27f0301
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Nov 28 17:31:44 2019 -0500

    Test on powerpc-eabisim

commit 01a75ed76ea7e57f1b7a5c183e2b1e890e6aa0fd
Author: Sergei Trofimovich <slyfox@gentoo.org>
Date:   Thu Nov 28 12:42:41 2019 +0000

    powerpc: fix build failure on power7 and older (#532)
    
    Build failure looks as:
    ```
    libtool: compile:  powerpc-unknown-linux-gnu-gcc \
        -O2 -mcpu=powerpc -mtune=powerpc -pipe ... -c src/powerpc/ffi.c ...
    In file included from src/powerpc/ffi.c:33:
    src/powerpc/ffi_powerpc.h:65:9: error: '__int128' is not supported on this target
       65 | typedef __int128 float128;
          |         ^~~~~~~~
    ```
    
    The fix avoids using __int128 in favour of aligned char[16].
    
    Closes: https://github.com/libffi/libffi/issues/531
    Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>

commit 1ec01ea81cf18e12748082f48f7c279a3fdd505d
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Nov 24 22:47:48 2019 -0500

    Run aarch64-linux-gnu tests on travi-ci directly

commit 66022e52ec0409f9170eb0884c6d0bdd048bc04e
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Nov 24 16:52:14 2019 -0500

    Fixes for ppc64le and s390x travis testing

commit 932e5bb68a603885e4bd9cf1bd5146542f736ccf
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Nov 24 16:26:14 2019 -0500

    Force the use of docker

commit 803db14c5a0aeb52ee521fe4fe4a7919926373de
Merge: 86be66c fb914c3
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Nov 24 16:10:22 2019 -0500

    Merge branch 'master' of github.com:libffi/libffi

commit 86be66c8f608a84caea2ef724698093d2da2e5e2
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Nov 24 16:09:44 2019 -0500

    Try travis-ci's new ppc64le and s390x support

commit fb914c366fabb29ac373050ca0bfa4d9c1fef149
Author: Panayotis <panayotis@panayotis.com>
Date:   Sun Nov 24 18:25:13 2019 +0200

    disable obsolete 32-bit targets in macOS (#511)

commit fd99c95f90f85963f5ec88630c0428a8132012db
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Nov 24 11:11:25 2019 -0500

    Minor clean-up

commit 5dcb741f1544c5e18c9dbf96aeb8b61cc556a616
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 23 10:24:58 2019 -0500

    Move nested_struct3 test to closures directory

commit 1aca33301a791f503d943f5e3abe2c720296eb8f
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 23 09:42:04 2019 -0500

    Add missing closing brace

commit d996cb283cf373936498defa902be040ec20455e
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 23 09:00:14 2019 -0500

    Version 3.3

commit c72b82f465148b89f118ee73f8956dafdbac9b65
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 23 08:48:53 2019 -0500

    Remove junk file from dist

commit 642d40ee6ae9a779b3c5ad930785d4b33cf94029
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 23 07:49:58 2019 -0500

    Account for moved test files

commit 049da08a22b0ca6d63d2be6c209da5ac1335365c
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 23 07:44:26 2019 -0500

    Add dejagnu directives accidentally removed

commit 36730f5d87c2a432e1b3bf1a0129fedbf4b0a488
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Nov 22 19:49:38 2019 -0500

    Move closure test to closure directory

commit c88c0e92a9fbb4e69513394682c61aa848a035cc
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Nov 22 19:27:34 2019 -0500

    More more closure tests to the closure test directory

commit a37cc1755cc276b2b9e601b9b112919f8c882a2e
Merge: 332a539 247a5e7
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Nov 22 18:55:36 2019 -0500

    Merge branch 'master' of github.com:libffi/libffi

commit 332a539e88d26a0524c10a39283a3099d071ca10
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Nov 22 18:54:30 2019 -0500

    Move closure tests so we can easily XFAIL them for some targets

commit 1761a10645dadc0840bf1ff3a4998f9a342e8cad
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Nov 22 18:53:09 2019 -0500

    Remove gccbug detection.  GCC is good now.

commit 247a5e7878379b7af33338d51898d7fb9e82e686
Author: Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
Date:   Fri Nov 22 20:17:58 2019 +0100

    Capture x86-windows host like x86_64-windows (#529)

commit 8e3935fa761d3e6f19ccf5e6733fd40dee637d94
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Nov 22 12:42:26 2019 -0500

    Manual clean-ups, and include the PDF in the source distribution.

commit d01088a5194ff1a2250e7dbee04a9a167b582db7
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Nov 21 05:36:06 2019 -0500

    Mention more major port contributors

commit 970b7fce4f804df57ec582a0220c22eaeccc239a
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Nov 21 05:04:54 2019 -0500

    Update autoconf-archive m4 macros

commit 34a3a661b80c0fa7817c0654ae9fd0686d3b8cd2
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Nov 21 04:59:39 2019 -0500

    Fix formatting of README.

commit 91a7fbe94e3884536cf2eb8e644bc79d6b19c80e
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 20 07:16:41 2019 -0500

    Fix or1k lack-of-g++ checking in testsuite

commit 31543c799a224ef446cef19a2372b054ecad3822
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 20 06:15:55 2019 -0500

    Add work-around for users who manage their own closure memory
    
    As suggested by DJ

commit bd3a4687c0743076f420dee2a02075fd64fa547e
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Nov 19 17:14:23 2019 -0500

    No C++ for or1k-unknown-elf

commit d6e4f96b482690e6cdaf67a70bb33d1bfe0acd15
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Nov 19 13:36:49 2019 -0500

    No C++ for or1k

commit 497018686d4df0012ea7bf1a4ab41b918b5e65bc
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Nov 19 10:07:16 2019 -0500

    Disable type warnings for or1k.

commit 262cf74fd4003a928ca73e96ef8698546e535c46
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Nov 19 10:06:57 2019 -0500

    No c++ for or1k-elf

commit 54fc80dfd8d608ec718cade762c358b8fd819f38
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Nov 18 15:20:00 2019 -0500

    Fake TRAVIS_BUILD_DIR

commit 6f734f8a5ff13d106f81741c11c7cb2551706c7f
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Nov 18 15:13:16 2019 -0500

    Adapt for new old ChangeLog file

commit 27d31130cabfe82683fc0e3e82247fd522f45607
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Nov 18 15:06:51 2019 -0500

    Fix DEJAGNU variable

commit da1358816e7b02e6f8431e4df336d0934bcabd4c
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Nov 18 14:54:14 2019 -0500

    Set vars

commit 9a394c24951f3fc5cfbd0ff268278a7b45afc77e
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Nov 18 14:45:29 2019 -0500

    Remove verbosity

commit 14bfbec0fd312001f7922ee6100cbc3155ae585b
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Nov 18 14:40:30 2019 -0500

    Pull before running

commit dfa60e5eb44482d45b8c79b815e6b6789e62ce18
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Nov 18 14:02:33 2019 -0500

    Fix cross builds for or1k

commit a8223271a3d7ff1e8a1553c2a5ed9b4e1a24a774
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Nov 18 13:59:10 2019 -0500

    More cross build debugging

commit 8c9cf44cb2a2d46ddcb148508fb5350438b4a62b
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Nov 18 13:47:42 2019 -0500

    Set path to simulator. Add debugging output.

commit 581048f91e9e25e3b17a2906edd8840f35999918
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Nov 18 13:17:27 2019 -0500

    Be specific when building CI container images

commit bbea6394f9f27de68aac037abb264151d6de9f64
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Nov 18 13:06:26 2019 -0500

    Capture more or1k hosts

commit 97e3b1fe1a0fbdb43bf28fe6198cb26eaa719c93
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Nov 18 13:02:44 2019 -0500

    Add test support for or1k. Fix yaml typo.

commit c88f4d2677d4dc6659a1aa6418e636f8fcf9bd9b
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Nov 18 12:25:51 2019 -0500

    Fix typo for m32r and bfin builds

commit 93c203b347ea7d110355e12f832725f755e10eff
Merge: d087b59 73dd43a
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Nov 18 06:35:19 2019 -0500

    Merge branch 'master' of github.com:libffi/libffi

commit d087b595637ebb795c0cec1ff0c4409befb486b7
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Nov 18 06:34:42 2019 -0500

    Build/test for m32r-elf and bfin-elf

commit b6804d16453890b78844b1b3c1acf16af98cadb8
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Nov 17 09:19:14 2019 -0500

    Mention binary128 long double support for Power

commit 73dd43afc8a447ba98ea02e9aad4c6898dc77fb0
Author: Samuel Holland <samuel@sholland.org>
Date:   Sun Nov 17 07:22:25 2019 -0600

    IEEE754 binary128 long double support for PowerPC64 (#526)
    
    * powerpc: Adjust flags to make room for vector types
    
    * powerpc64 ELFv2 IEEE128 long double support

commit b58bd77236e7d41fc04b4be7edd1c6728626c99b
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Nov 15 11:18:59 2019 -0500

    Re-enable mingw32 tests.

commit 6f221e8269aa16f6b5eec41cfd1d7d90a9fbea0c
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Nov 15 11:06:17 2019 -0500

    Disable wine builds.

commit 09dc0a71a44c95ee0d2f47de94b6b59534c2ce24
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Nov 15 10:19:00 2019 -0500

    Stretch out timeout for test

commit 28a7cc464c21b4955fba28cc55a6f095ddf5838b
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Nov 15 06:07:51 2019 -0500

    Consolidate all of the old ChangeLog files into ChangeLog.old.

commit 86d3d3767a40fe1cae10c419a913dd97e7e6cd23
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 13 10:07:00 2019 -0500

    Don't build aarch64-linux-gnu

commit db198a19375858879dbcc51a443c193efa0b6c0a
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 13 10:05:36 2019 -0500

    Extend timeout for builds.

commit 54af0256a00a40b2218950f93e5415c60f675714
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 13 09:15:05 2019 -0500

    Platform test tweaks

commit 3a7580da73b7f16f275277316d00e3497cbb5a8c
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 13 07:59:18 2019 -0500

    Mark java raw APIs as deprecated.

commit cda60c1a8aec070a7a822c047d89d0f18cf7c5fc
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 13 06:51:44 2019 -0500

    Disable mips64 tests.  Fix log grabbing.

commit a34254bdc1dee2857b759a22e657f92aadfa85dc
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 13 06:37:26 2019 -0500

    Re-add wine based testing

commit 9bd3a9742c04d2fac489f236163d7e7fbb1b7568
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 13 06:35:40 2019 -0500

    Add wine-sim.exp for wine-based testing

commit de6df6dce6420d4643598c228b72da4e455a0da7
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 13 06:32:46 2019 -0500

    Fix log file URL extraction.  Grab rlgl cli for OSX

commit c8986e871f82b497493d28c36be1a755c2ea6b8d
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 13 06:01:43 2019 -0500

    Fix log name extraction

commit 6630764d244aeb3bc0797d0c3c7ccc79084061a8
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Nov 12 22:56:37 2019 -0500

    Account for shorter ==LOGFILE== string

commit aa975ec3e4ac07bd7dacec18f1c8282baeb7c398
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Nov 12 22:35:47 2019 -0500

    Fix grep matcher

commit 6dd88bc5b3f3d3d975409b7336f4127ae18da4b3
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Nov 12 18:44:27 2019 -0500

    Debug

commit 7e318cf50d8c481957b3be76e508054c70cbdf9b
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Nov 12 17:55:35 2019 -0500

    Pull test logs from cfarm

commit 5123e9cf0193031bdc580cb221427cbd29ba3677
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Nov 12 09:21:57 2019 -0500

    Use rlgl for cfarm test results

commit 486f88f985affa215a9daaadcdc703c8baea9020
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Nov 12 09:20:21 2019 -0500

    Use rlgl for cross builds.

commit 042c6671b0456d17af24d61b79cbd3f9261c3f2b
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Nov 12 09:14:20 2019 -0500

    Always exit build container successfully. Don't test mingw.

commit 82f7f80aa9ac3cd753bcb6d2b88cc930aee72bcc
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Nov 12 08:58:52 2019 -0500

    Run rlgl outside of the build container.

commit 5b297e036e61ad1ecac9c8a3e57895737c55feb7
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Nov 12 05:51:09 2019 -0500

    Don't bother dumping logs.  Use rlgl instead.

commit 2a8d88d92d56747101078c5592ab2473e6c5cb29
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Nov 11 21:24:58 2019 -0500

    Fix rlgl usage

commit 3c2b810e99a10f97d1eb6ba485eb09bfdb158084
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Nov 11 21:11:59 2019 -0500

    Test rlgl

commit 2cc11720be0c4d3bbe906be5a4aad3b2dc167072
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Nov 11 16:19:45 2019 -0500

    Debug in-container builds

commit 0de0c6a28006902c203e8dc6629cd9ef35d61e09
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Nov 10 08:20:46 2019 -0500

    Build both iOS and Macosx

commit 4e3e0586efbbc7828c15fb48e49401840beefcdd
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Nov 7 12:35:27 2019 -0500

    Fix tpyo

commit f764f278160831f7e4d8ee8a48d18f5a7937f742
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Nov 7 12:17:29 2019 -0500

    Change s390x options

commit 188de63c597f23b0ccdb953b076c8cb0711fbcf0
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Nov 7 12:03:19 2019 -0500

    Mark xfail for m68k and alpha.

commit 0da221f8094ec504d91b5f88c74e98b8b9aa9eda
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Nov 7 12:03:01 2019 -0500

    Clean up.  Debug s390x cpu support.

commit 7e0fbf41934020c9ff76816fde5000482c7e6a6c
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Nov 7 11:50:08 2019 -0500

    Try coldfire for m68k builds

commit 6a9fa770a436bbb71dbe8311e75123353e6836cc
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Nov 7 11:37:25 2019 -0500

    Add GCC_OPTIONS flag

commit eebcbb1113742df7d41fc3d39eca970a026ad1d1
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Nov 7 11:26:53 2019 -0500

    Compile m68k target for m5208

commit 08cb33ff5824b2ea24b2b62841cca1934a27f36f
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Nov 7 11:15:13 2019 -0500

    Dump supported CPUs

commit 16c935000d459b1aba9e1f7b48e2c1d7dadc8cf1
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Nov 7 11:00:09 2019 -0500

    Fix shell script

commit 588e87461fe48441806be4bb5654f058e1c37649
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Nov 7 10:56:40 2019 -0500

    Print debug output. Use podman when available.

commit 04d14a66ff807a0ac2578ce886ef338aa2066b4d
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Nov 7 09:23:10 2019 -0500

    Set QEMU_CPU within the build containers

commit 28d9c019dbbf6dea1ed127e1a7de829cece86639
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Nov 7 07:36:11 2019 -0500

    Set QEMU_CPU for m68k

commit 75464caf658f176848db6f48325c5067cdf94a9b
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 6 22:02:11 2019 -0500

    Add alpha and m68k testing

commit 259c497a2f326cc89344766e106cf73e62485a2a
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 6 11:31:17 2019 -0500

    Sett CC and CXX for cross builds

commit d23d3959fdb764984cfb888c5d6aed910926dd5f
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 6 11:21:46 2019 -0500

    autogen before cross building

commit a6dc8ef270c1f022720aedadb6b0d2678d1bc39e
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 6 11:10:59 2019 -0500

    Fix typo. Don't double test.

commit 136a235d3f36408628c0459d8740546acad0ca5a
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 6 10:51:33 2019 -0500

    Use the right cross build container image

commit 92f5309def05c66e6c5034c10d620d6fbc7a1018
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 6 10:49:04 2019 -0500

    Try s390x and sh4 cross builds/tests

commit d4a28fee720c8f389b138b3f7726157fbcb7eaaf
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 6 06:47:05 2019 -0500

    Revert to older test cross compilers

commit 0fb9ee21e68ca3e70cf236a63ba00b5ca32031ff
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 6 06:44:19 2019 -0500

    Use older test compiler.  Enable s390x testing.

commit 36d281ab70daf7dcf890df9c3f5bdd76f665bb68
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 6 06:30:52 2019 -0500

    Test cross-builds for hppa-linux-gnu

commit c95cc4b354f24dbbf5776eb297fa036bcbfed252
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 6 06:30:20 2019 -0500

    Reference FFI_BUILDING_DLL

commit 88a76477debe83ed6a75f96394853c891fb1dac4
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Nov 3 06:28:51 2019 -0500

    rc2. hack as per: https://github.com/travis-ci/travis-ci/issues/6934

commit 45ba4aefed15be24fdbaaffec805fb02b1343e0f
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Oct 31 19:07:04 2019 -0400

    Add sparc64-linux-gnu testing back

commit a26323b7e0824f0becaeaffc8d3b700dc09f741c
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Oct 31 15:32:48 2019 -0400

    Don't build sparc.  Build mips.

commit f325324818a6aaa9e8a75782d75c412872e6b21c
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Oct 31 14:35:43 2019 -0400

    Test mips64el-linux-gnu

commit 39bad2f396de7885c9569144b5bb6e8a639ac011
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Oct 31 12:33:22 2019 -0400

    Don't run autogen.sh all the time.

commit 82719cbba06c2fc527df156d728341867d86f82c
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Oct 31 12:23:11 2019 -0400

    Test sparc64-linux-gnu on travis

commit 0348d0e4fa585d9a3d9762132a3eee94f918fe3b
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Oct 31 10:53:37 2019 -0400

    Try new cfarm build for power

commit 290bc3164bb0e0b3fb912c457b49e61f9a728eef
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Oct 26 10:13:20 2019 -0400

    Add make_sunver.pl to distribution.

commit a8efc2f7897b439fdf2144329d35fea820498dc7
Author: Andreas Schwab <schwab@linux-m68k.org>
Date:   Sat Oct 26 14:57:05 2019 +0200

    Fix FFI_STDCALL ABI (#514)
    
    Even for a stdcall function, the stack alignment is still the
    responsibility of the caller.  Remember the original, not stack-aligned
    argument size, but align when setting up a stack frame.  In
    ffi_closure_inner, return the true argument size, so that
    ffi_[go_]closure_STDCALL doesn't adjust too much.

commit ca112537df7b9cdbccad7541aa3cb43b2a2dac9a
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Oct 26 07:26:30 2019 -0400

    Add missing build script, make_sunver.pl.

commit 52b066f04fdd81c1037e1cb714a07a2a352bcf9b
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Oct 24 07:03:43 2019 -0400

    Update versions to 3.3-rc1

commit 9b10df3be2d8f81876b7cc90ee5d8833ccdf6b34
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Oct 24 06:41:11 2019 -0400

    Remove some debugging output

commit ec042885cfa5a9450bfcc87152a41529d26545de
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Oct 24 06:39:00 2019 -0400

    Don't test ppc64le with buggy qemu.

commit 90fb897839bb7006a2f751d283e3d23b3bfec1ea
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Oct 24 06:24:14 2019 -0400

    Strip build status from README.md at 'make dist' time.

commit 1d6059446fb986d2de933f7ccf6fe38bcdf0c76c
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Oct 24 05:25:11 2019 -0400

    Add missing dist files.

commit 825b2a359468af8bf3570a5a0695e8b805c5446f
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Oct 16 16:05:46 2019 -0400

    Test on arm32v7-linux-gnu, ppc64le-linux-gnu and aarch64-linux-gnu.
    
    Use docker images and qemu to test libffi for non-x86 architectures on
    travis-ci.
    Use the LIBFFI_TEST_OPTIMIZATION environment variable to
    force specific optimization levels at test time.

commit d2a4095af68f4530571bc3fa613dd7f5e5b815a3
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Oct 14 06:46:52 2019 -0400

    Fix comments.

commit 058aa4130445b4ef3c2f77f796c33506873031ca
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Oct 14 05:47:07 2019 -0400

    Update copyright year

commit c4f61240ab19401bd86c0dfb271e243e8159abb4
Author: zhanhb <6323014+zhanhb@users.noreply.github.com>
Date:   Wed Oct 9 18:59:32 2019 +0800

    Add long double test (#492)
    
    Required to fix build error on macos with gcc-9

commit 09f9d856112f2f105337e95e32ba9e2da63f65ae
Author: pichikaudaykiran <51439150+pichikaudaykiran@users.noreply.github.com>
Date:   Wed Oct 9 16:26:06 2019 +0530

    Making the change to correct the comment when SUN (#521)
    
    and GCC are used together

commit 55c22092dc54e706a64af3a49ae9d5471a9e8317
Author: pnallan <46887249+pnallan@users.noreply.github.com>
Date:   Tue Oct 8 18:46:47 2019 +0530

    handle compilation warnings with ftruncate API (#508)
    
    * fix me: avoid warning while handle ftruncate API
    
    Signed-off-by: Prasad Nallani <prasad.nallani@intel.com>
    
    * Update closures.c

commit e5f0eb1552f222eb2630e40ee348b090d56412a3
Author: John Ericson <git@JohnEricson.me>
Date:   Tue Oct 8 06:58:52 2019 -0400

    Clean up line endings (#509)
    
    The CLRF visual studio files can be kept that way, but recognized as
    text. The assembly file can be converted to LF.

commit ea9b6639c69cbffeacd1ce0c1953c1997cf29d2e
Author: Samuel Holland <samuel@sholland.org>
Date:   Tue Oct 8 05:57:28 2019 -0500

    PowerPC bugfixes (#520)
    
    * powerpc: Silence warnings about unused labels
    
    * powerpc: Fix a couple of comments
    
    * powerpc: Fix alignment after float structs
    
    * powerpc: Don't pad rvalues copied from FP regs
    
    * powerpc: Add missing check in struct alignment
    
    * powerpc: Support homogeneous long double structs

commit 25cf9cc4a5ce4a272252de3f681d60dafd838ceb
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Oct 8 06:24:55 2019 -0400

    Use https for moxie toolchain repo

commit c2a6859012d928b67a83619bd5087674a96b9254
Author: Paul Monson <paulmon@users.noreply.github.com>
Date:   Wed Aug 7 11:57:45 2019 -0700

    fix mingw build and crashing bugs for Python Windows ARM64 (#496)
    
    * fix mingw build and crashing bugs for Python Windows ARM64
    
    * Fix issues found in PR review

commit e0b4f84fb71c6760068c9d1306e77c9382e76d8d
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jun 26 06:18:48 2019 -0400

    Clear the apt cache

commit 68668fe4f22dea7b829fb84b724f5a74091f22f2
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jun 26 06:01:15 2019 -0400

    More debugging output

commit 1d7635d18ae4aebe4ec1cd129b0b4f71b685131e
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Jun 25 23:39:52 2019 -0400

    Debug moxie builds in travis

commit d856743e6b02fcb5911491204131e277a7a4e10b
Author: ossdev07 <39188636+ossdev07@users.noreply.github.com>
Date:   Wed Jun 26 07:31:22 2019 +0530

     libffi: added ARM64 support for Windows (#486)
    
    *  libffi: added ARM64 support for Windows
    
        1. ported sysv.S to win64_armasm.S for armasm64 assembler
        2. added msvc_build folder for visual studio solution
        3. updated README.md for the same
        4. MSVC solution created with the changes, and below test suites are tested
           with test script written in python.
    
           libffi.bhaible
           libffi.call
        5. Basic functionality of above test suites are getting passed
    
    Signed-off-by: ossdev07 <ossdev@puresoftware.com>
    
    * Update README.md

commit 80d07104c33045ea34a4d5185600495dc7461a12
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Apr 28 07:36:24 2019 -0400

    uuencode compressed log files for travis

commit fadf1eb530713fde0be9774d926bc8202c97e379
Author: Sergei Trofimovich <slyfox@gentoo.org>
Date:   Sat Apr 27 20:53:29 2019 +0100

    hppa: avoid TEXTREL in .eh_frame section (#447)
    
    Before the change hand-crafted .eh_frame section contained
    ABS relocation and caused TEXTREL tag to be emitted:
    
    ```
    $ ./configure --host=hppa2.0-unknown-linux-gnu LDFLAGS=-Wl,-z,text
    $ make
    ...
    /usr/libexec/gcc/hppa2.0-unknown-linux-gnu/ld:
        read-only segment has dynamic relocations.
    ```
    
    Link failure is caused by absolute address of FDEs
    encoded into .eh_frame entries.
    
    Fixed TEXTREL by using pcrel (instead of ABS) encoding
    for absolute addresses (__PIC__ code) by adding augmentation
    information ("zR" CIE type).
    
    All tests still pass on hppa2.0. The specific tests that still pass
    and exercise this code path:
        testsuite/libffi.call/unwindtest.cc
        testsuite/libffi.call/unwindtest_ffi_call.cc
    
    Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>

commit 06bf1a9deaa781b711c4d3718561e7faf303a842
Author: driver1998 <driver1998.ms@outlook.com>
Date:   Sun Apr 28 03:21:44 2019 +0800

    fix x86/x64 MSVC build (#487)

commit db5706ff285c476aa3c0f811ff2b188319ac3ebe
Author: Paul Monson <paulmon@users.noreply.github.com>
Date:   Fri Apr 26 04:58:58 2019 -0700

    add support for 32-bit ARM on Windows (#477)
    
    * add support for 32-bit ARM on Windows
    
    * fix mismatched brace in appveyor.yml
    
    * remove arm platform from appveyor.yml for now
    
    * fix arm build
    
    * fix typo
    
    * fix assembler names
    
    * try Visual Studio 2017
    
    * add windows arm32 to .appveyor.yml
    
    * update README.md

commit d1e9b4b96cc8d237c3532cf83da0d4b99d19abb5
Merge: 05a1796 a7d6396
Author: Tom Tromey <tom@tromey.com>
Date:   Tue Apr 9 14:00:10 2019 -0600

    Merge pull request #482 from sharkcz/aarch64
    
    fix check for Linux/aarch64

commit a7d6396f06d5e1a726f24b746b509514f466380f
Author: Dan Horák <dan@danny.cz>
Date:   Fri Mar 29 14:19:20 2019 +0100

    fix check for Linux/aarch64
    
    fixes #473

commit 05a1796419f68267250c0b8ae7138da36ab60b01
Author: Jeremy Huddleston Sequoia <jeremyhu@users.noreply.github.com>
Date:   Tue Feb 19 04:11:28 2019 -0800

    Cleanup symbol exports on darwin and add architecture preprocessor checks to assist in building fat binaries (eg: i386+x86_64 on macOS or arm+aarch64 on iOS) (#450)
    
    * x86: Ensure _efi64 suffixed symbols are not exported
    
    * x86: Ensure we do not export ffi_prep_cif_machdep
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
    
    * x86: Ensure we don't export ffi_call_win64, ffi_closure_win64, or ffi_go_closure_win64
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
    
    * closures: Silence a semantic warning
    
    libffi/src/closures.c:175:23: This function declaration is not a prototype
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
    
    * aarch64: Ensure we don't export ffi_prep_cif_machdep
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
    
    * arm: Ensure we don't export ffi_prep_cif_machdep
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
    
    * aarch64, arm, x86: Add architecture preprocessor checks to support easier fat builds (eg: iOS)
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
    
    * x86: Silence some static analysis warnings
    
    libffi/src/x86/ffi64.c:286:21: The left operand of '!=' is a garbage value due to array index out of bounds
    libffi/src/x86/ffi64.c:297:22: The left operand of '!=' is a garbage value due to array index out of bounds
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
    
    * aarch: Use FFI_HIDDEN rather than .hidden
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
    
    * ffi.h: Don't advertise ffi_java_rvalue_to_raw, ffi_prep_java_raw_closure, and ffi_prep_java_raw_closure_loc when FFI_NATIVE_RAW_API is 0
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>

commit 3ec522bc1c1c5a7fb66b85d4fb6a0fe80581d597
Author: dabrain34 <scerveau@gmail.com>
Date:   Tue Feb 19 13:09:09 2019 +0100

    Fix cfi checks for old compiler (#453)
    
    cfi_sections can be unsupported when cfi_startproc
    and cfi_endproc are.

commit e1118af50599314a2cbac3eb51a81896e8e21d0c
Author: Paul Monson <paulmon@users.noreply.github.com>
Date:   Tue Feb 19 03:58:25 2019 -0800

    changes for win32 on windows (#468)

commit 44a6c28545186d78642487927952844156fc7ab5
Author: Florian Weimer <fw@deneb.enyo.de>
Date:   Tue Feb 19 12:55:11 2019 +0100

    aarch64: Flush code mapping in addition to data mapping (#471)
    
    This needs a new function, ffi_data_to_code_pointer, to translate
    from data pointers to code pointers.
    
    Fixes issue #470.

commit 042ef8c314a946ef1cd58c6e10cd74e403ef5bf9
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Feb 12 08:50:30 2019 -0500

    Remove -Os testing. No ABI impact, and helps trim log lengths.

commit 8fa88373a1d433c675b11200ccd58418e91f81e4
Merge: 737d4fa 2c5b164
Author: Tom Tromey <tom@tromey.com>
Date:   Wed Dec 19 14:18:40 2018 -0700

    Merge pull request #461 from NativeScript/bektchiev/fix-visibility-hidden-check-in-configure
    
    fix(configure): Correctly detect visibility("hidden") support on Darwin

commit 2c5b164288712cc048048d73a3cd841d845a132c
Author: Martin Bektchiev <martin.bektchiev@progress.com>
Date:   Wed Dec 19 18:33:08 2018 +0200

    fix(configure): Correctly detect visibility("hidden") support on Darwin

commit 737d4faa00d681b4c758057f67e1a02d813d01c2
Merge: a5ea752 4a84df4
Author: Tom Tromey <tom@tromey.com>
Date:   Fri Nov 30 08:16:00 2018 -0700

    Merge pull request #457 from NativeScript/bektchiev/fix-arm64-q3-q4-args
    
    Fix Q registers parameter passing on ARM64

commit 4a84df4ae9d33bb766fb34ce8a871d84d6e0ed9c
Author: Martin Bektchiev <martin.bektchiev@progress.com>
Date:   Wed Oct 31 15:53:54 2018 +0200

    Fix Q registers parameter passing on ARM64
    
    The second two quads are located at offset 32 not 16

commit a5ea7527cda8d9b7d011eb4004dfcbad54583bd2
Merge: b11b08c ba73a67
Author: Tom Tromey <tom@tromey.com>
Date:   Wed Sep 19 07:29:36 2018 -0600

    Merge pull request #443 from jeremyhu/master
    
    Update FFI_HIDDEN() to use .private_extern on Apple platforms and use the macro where appropriate

commit b11b08ca8daacb08943ae5ea8c124771a8b82dde
Merge: 980908b e6eac78
Author: Tom Tromey <tom@tromey.com>
Date:   Tue Sep 18 08:26:31 2018 -0600

    Merge pull request #449 from gpakosz/align-macros
    
    Prefix ALIGN_DOWN macro with FFI_

commit e6eac7863e2bf1a009ea863041b354bdb4af6b67
Author: Gregory Pakosz <gregory.pakosz@gmail.com>
Date:   Tue Sep 18 15:19:53 2018 +0200

    Prefix ALIGN_DOWN macro with FFI_

commit 980908b47bbde09fab88ee4b2b61d8bc5d4378a7
Merge: 65da63a 4cb776b
Author: Tom Tromey <tom@tromey.com>
Date:   Sat Aug 11 09:53:15 2018 -0600

    Merge pull request #445 from andreas-schwab/master
    
    RISC-V go closures

commit 4cb776bc8075332d2f3e59f51785d621fcda48f6
Author: Andreas Schwab <schwab@suse.de>
Date:   Thu Aug 9 12:12:29 2018 +0200

    RISC-V go closures
    
    This implements go closures for RISC-V.  It has been tested on
    riscv64-suse-linux and against the libgo testsuite.

commit ba73a671cb49f8e2c4417723a9dc233e328926ae
Author: Jeremy Huddleston Sequoia <jeremyhu@macports.org>
Date:   Fri Jul 20 09:37:43 2018 -0700

    Update FFI_HIDDEN() to use .private_extern on Apple platforms and use the macro where appropriate
    
    Fix issue #439
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@macports.org>

commit 65da63abc843fe448aaa86015d094cf016f325ba
Author: Jeremy Huddleston Sequoia <jeremyhu@users.noreply.github.com>
Date:   Mon Jun 25 04:38:58 2018 -0700

    Add compact unwind for darwin/i386 (#440)
    
    * x86: Add implementation of compact unwind for ffi_call_i386, et al.
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@macports.org>
    
    * x86: Use __text as the section name to avoid deprecated section name warnings.
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@macports.org>
    
    * darwin: Add missing regular,debug attributes for compact unwind sections
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@macports.org>

commit 2309b58448b0c8349156d687d7fa8709dfb68992
Author: Shoaib Meenai <shoaib.meenai@gmail.com>
Date:   Sun Jun 17 17:04:24 2018 -0700

    Mark sysv.S as SafeSEH compatible (#438)
    
    It contains no exception handler, so we can just emit the special
    @feat.00 symbol to indicate that it's trivially SafeSEH compatible.
    SafeSEH only applies to x86 and not x86-64, hence its inclusion in the
    x86-specific block. See [1] for details.
    
    [1] https://msdn.microsoft.com/en-us/library/windows/desktop/ms680547(v=vs.85).aspx#the_.sxdata_section_

commit 1d704051b2da207d715351b8613e74437d8e2eb7
Author: Jeremy Huddleston Sequoia <jeremyhu@users.noreply.github.com>
Date:   Sun Jun 17 17:01:50 2018 -0700

    i386: Fix missing break; in case statement leading to incorrectly returned FFI_BAD_ABI (#437)
    
    * i386: Add missing break triggering dead store static analyzer checks.
    
    Register calling sequence is being reported as bad ABI instead of working as intended.
    
    Found-by: Clang Static Analysis
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@macports.org>
    
    * Mark ffi arm sysv entry points as private_extern.
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@macports.org>
    
    * x86_64: Add implementation of compact unwind for ffi_call_unix64.
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>

commit b55baf0b500ccc7636a8a55e0506d9da787ad2dd
Author: Anthony Green <green@moxielogic.com>
Date:   Wed May 9 13:21:02 2018 -0400

    Handle FFI_GNUW64 on non-Windows systems (EFI)

commit 8206253fdf01226173c36f087226d8ea53584566
Author: Anthony Green <green@moxielogic.com>
Date:   Wed May 9 10:50:46 2018 -0400

    Mark some cases as xfail due to GCC bug

commit b5ee395710e2db830749c3c95558c91b66ac111f
Author: Anthony Green <green@moxielogic.com>
Date:   Sat May 5 07:41:53 2018 -0400

    Revert "Remove some symbol exports and cleanup newline warnings (#433)"
    
    This reverts commit a5a0f3cf36dfb4d64316414a872288c3170e6c1d.

commit a5a0f3cf36dfb4d64316414a872288c3170e6c1d
Author: Jeremy Huddleston Sequoia <jeremyhu@users.noreply.github.com>
Date:   Sat May 5 03:44:33 2018 -0700

    Remove some symbol exports and cleanup newline warnings (#433)
    
    * build: Ensure darwin generated sources end with a new line
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@macports.org>
    
    * build: Use .private_extern where missing to prevent exporting symbols that are not API
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@macports.org>

commit d3c54cf3a2b2bb2e889173b6a0a959517b42c47f
Author: hjl-tools <hjl.tools@gmail.com>
Date:   Wed May 2 06:19:58 2018 -0700

    Re-enable msabi testing (#436)
    
    * Revert "disable msabi testing for now"
    
    This reverts commit 7b7638eb0eac2adfa72f7ec9f254ba287c9947e2.
    
    * x86: Correct testing for 64-bit x86-64
    
    Since passing -m32 to x86-64 compiler will generate i386 code, we
    need to check both __ILP32__ and __i386__ for 64-bit x86-64.
    
    * x86: Check __i386__ instead of i?86-*-* targets
    
    Since passing -m32 to x86-64 compiler will generate i386 code, we need
    to check __i386__ instead of i?86-*-* targets for i386 targets.
    
    * i386: Properly passing integer parameters in registers
    
    For thiscall and fastcall, if the paramter passed as 64-bit integer or
    struct, all following integer paramters will be passed on stack.
    
    * test: Add ABI_ATTR to callback_code
    
    Add ABI_ATTR to callback_code to properly test different ABIs.

commit ebf241663cc0fd0d76e4db8101e842e1630a2c78
Author: Alan Modra <amodra@gmail.com>
Date:   Wed May 2 13:55:29 2018 +0930

    PowerPC64 ELFv1 fp arg fixes
    
    The ELFv1 ABI says: "Single precision floating point values are mapped
    to the second word in a single doubleword" and also "Floating point
    registers f1 through f13 are used consecutively to pass up to 13
    floating point values, one member aggregates passed by value
    containing a floating point value, and to pass complex floating point
    values".
    
    libffi wasn't expecting float args in the second word, and wasn't
    passing one member aggregates in fp registers.  This patch fixes those
    problems, making use of the existing ELFv2 homogeneous aggregate
    support since a one element fp struct is a special case of an
    homogeneous aggregate.
    
    I've also set a flag when returning pointers that might be used one
    day.  This is just a tidy since the ppc64 assembly support code
    currently doesn't test FLAG_RETURNS_64BITS for integer types..
    
            * src/powerpc/ffi_linux64.c (discover_homogeneous_aggregate):
            Compile for ELFv1 too, handling single element aggregates.
            (ffi_prep_cif_linux64_core): Call discover_homogeneous_aggregate
            for ELFv1.  Set FLAG_RETURNS_64BITS for FFI_TYPE_POINTER return.
            (ffi_prep_args64): Call discover_homogeneous_aggregate for ELFv1,
            and handle single element structs containing float or double
            as if the element wasn't wrapped in a struct.  Store floats in
            second word of doubleword slot when big-endian.
            (ffi_closure_helper_LINUX64): Similarly.

commit a2c6c7af9ffb9500a944abc666ced0922d0de762
Author: Anthony Green <green@moxielogic.com>
Date:   Tue May 1 06:46:30 2018 -0400

    Add license for build-time tools

commit 4c2206ace07f2fb4bef43cd4bfe952ccb584dcec
Author: Tom Tromey <tom@tromey.com>
Date:   Sat Apr 28 04:46:10 2018 -0600

    Fix two "return" issues in x86/ffi64.c (#431)
    
    Issue #70 pointed out that at least one compiler didn't like:
    
        return ffi_call_efi64(cif, fn, rvalue, avalue);
    
    ... where the return type is "void".  This patch splits the statement
    into two.
    
    I also noticed that ffi_call_go here seems to do a double call.  I
    suspect a "return" is missing here, so this patch adds it as well.

commit ed3ed4d801a4d417ea304715d4d8ae581a6c6903
Merge: 8e250c3 b69f95d
Author: Tom Tromey <tom@tromey.com>
Date:   Fri Apr 27 10:48:51 2018 -0600

    Merge pull request #429 from yousong/m4subst
    
    build: fix subst toolexecdir, toolexeclibdir

commit b69f95d6562b6a57c9be36da0cdf2a500adb94e9
Author: Yousong Zhou <yszhou4tech@gmail.com>
Date:   Thu Apr 26 19:27:54 2018 +0800

    build: fix subst toolexecdir, toolexeclibdir
    
    On CentOS 7.4, configure script generated by autogen.sh will output the
    following values when compiling GCC source code
    
        toolexecdir='NONE/$(target_alias)'
        toolexeclibdir='NONE/$(target_alias)/lib'
    
    and cause build error
    
        ... -o libffi.la -rpath NONE/riscv64-bs-linux-gnu/lib ...
        checking for shl_load in -ldld... libtool: link: only absolute run-paths are allowed

commit 8e250c390a45f722387c1881ae5f99849a2d1e22
Author: Stephen <stephengroat@users.noreply.github.com>
Date:   Wed Apr 25 13:17:32 2018 -0700

    update to https for cygwin download (#428)

commit 7d3cab7926d08aad9a8e54420d6878cb17efd185
Author: Lucas Pluvinage <lucas.pluvinage@gmail.com>
Date:   Sat Apr 21 00:24:50 2018 +0200

    xtensa-linux: use cache flush instruction only if it is available (#426)

commit 159b94e5fd4aa2d88e1b5b389092cefd9472a741
Author: James Cowgill <jcowgill@users.noreply.github.com>
Date:   Thu Apr 19 01:28:23 2018 +0100

    Various MIPS Fixes (#425)
    
    * mips: simplify closure #defines
    
    This commit should have no visible effect.
    
    * mips: add special handling of variadic functions
    
    MIPS requires special handling of variadic functions which pass floating
    point arguments:
    * In the o32 ABI, all float arguments are passed in integer registers.
    * In the n32/n64 ABIs, float arguments after the ellipsis are passed in
      integer registers.
    
    Implement this in libffi. To support this in n32/n64 closures, we need to add
    a new mips_nfixedargs field to ffi_cif which will break the libffi ABI.
    
    This fixes the libffi.call/cls_longdouble_va.c test which was failing on
    64-bit MIPS.
    
    * mips: align argn for all 64-bit types in o32 closure handler
    
    Ensure that argn is pre-aligned for all 64-bit argument types (including
    doubles) and not just integer types.
    
    This fixes closures of the form "f(float, double, <some integer args>)".
    Previously the first integer argument would be read from a2 which is garbage
    at this point (the float arguments have already "consumed" a0-a3). After
    this commit, argn is correctly padded between the "float" and "double"
    arguments so that the first integer argument is read from the stack.
    
    Fixes "double f(float,double,int)" test in #371
    
    * mips: do not read from floating point register if returning a struct
    
    In the o32 ABI, the pointer passed in a0 used to return structures
    indirectly is treated as the first argument for argument allocation purposes.
    This means that it should inhibit floating point registers the same way that
    other integer arguments do.
    
    Fixes "Double f(float,Double,double)" test in #371
    
    * mips: fix pointer cast warnings
    
    Fix two pointer cast warnings when compiled on 64-bit mips by casting
    through uintptr_t.
    
    Fixes mips64el part of #404

commit f2afda08e85b02888350449dcf39a6c37cfb7bc4
Merge: e27f70b 801c1bd
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Apr 8 18:25:43 2018 -0400

    Merge branch 'master' of github.com:/libffi/libffi

commit e27f70b8cf2a537bef84b2cb29ad8ea6209a11b8
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Apr 8 18:25:34 2018 -0400

    Fix case where callback arg value is split across regs and stack

commit 801c1bd712ff8c76675b7aa69c29948907f1eeff
Author: Andreas Krebbel <38103320+Andreas-Krebbel@users.noreply.github.com>
Date:   Thu Apr 5 14:27:32 2018 +0200

    Fix issue #421 (#422)
    
    Fantastic - thanks for digging into this.

commit 8660e6935971c5abd7b528eaf54deeccd4bbaccd
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Apr 2 08:30:17 2018 -0400

    3.3 release candidate 0

commit 7b7638eb0eac2adfa72f7ec9f254ba287c9947e2
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Apr 2 08:24:44 2018 -0400

    disable msabi testing for now

commit af6773d6ab4db0577bc6b932ab5a2f98a0a8dca2
Author: fwg <fwg@users.noreply.github.com>
Date:   Mon Apr 2 13:55:31 2018 +0200

    Fix appveyor windows build (#420)
    
    * Fix msvcc dll build by adding dllexport decorations to all API declarations
    
    * Fix appveyor build for VS 2013
    
    Use the new -DFFI_BUILDING_DLL for producing a working DLL. Update the
    msvcc.sh wrapper script to successfully compile the testsuite files.
    
    * MSVC build: suppress warnings in testsuite
    
    * fix testsuite on appveyor

commit 48bdb02867edb7e9f3785ccb4bdff1087fb44246
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Mar 29 07:22:57 2018 -0400

    Trim some optimization tests

commit f98e0f0d777bf962057e18d036989b2b89fdf416
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Mar 29 07:22:38 2018 -0400

    Simplify matrix

commit fa72b054e10acaea33ec8cc395e0ea5b31c9ac9e
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Mar 29 07:10:23 2018 -0400

    Remove warning message from clang

commit 746c3ce220cb155a8f3b613550a7ecad76f9fedc
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Mar 29 07:01:14 2018 -0400

    Expand ABI tests on x86.  Testsuite bug fixes.

commit 2eee934d0cb2beef7c0aa29767eca1ce03452ae9
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 14:45:40 2018 -0400

    deal with msvc warnings

commit 206b2974f70f65b4c4c4d9e62b03ee7e0753ee2d
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 14:37:50 2018 -0400

    fix quoting issue

commit 499e41c1ec6b760eff2b320ffc87e22de82a9e1d
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 14:35:10 2018 -0400

    Don't ignore a file

commit 5b41e9f6d2c099add0e02db8c8054281f96b6d0e
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 14:34:31 2018 -0400

    Try different msvc hack

commit e8cf133813e7fa2c606d93abab5b68989e5f6cbc
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 14:12:02 2018 -0400

    msvc c99 hack

commit a3e20940898ed2ca96b9df87f34117d06d900e5f
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 11:58:42 2018 -0400

    More msvc hacks

commit a82b456e98b0f3fbafe76725d1a1503d458a2178
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 11:49:46 2018 -0400

    msvc fixes

commit a2326aaf561798c3bfd5e464b16693a094bf6c45
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 11:36:04 2018 -0400

    Remove debug output

commit 85b6b209d7984667ce7d00351fe7e79ef6c4930c
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 11:35:23 2018 -0400

    Force literals to float (msvc warning)

commit 2872c460ba8e96416b4f4ee4a0ed183461d8d6c9
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 11:28:40 2018 -0400

    Fix msvc linking

commit b40a386c22a2bd164819b4f398b722357222b7c1
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 11:20:21 2018 -0400

    Fix library path handling

commit d78c5f64f834c24a769bee78cfb7db4d468b6b21
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 11:14:56 2018 -0400

    Deal with libpath

commit f318bb63c5dc623d5a69ffc4a59a330050cac567
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 08:25:26 2018 -0400

    Fix library path handling

commit 4f0c9cb39b7599312729278380ce63247bca226b
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 08:10:03 2018 -0400

    Use mixed cygpath paths

commit d3693b4665de7ef69b61fb4e483d5686302f9c69
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 08:05:42 2018 -0400

    Copy - don't symlink - to support msvc builds

commit 51ce3696cd0da4716d86b73a30bd89e139ec4b74
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 07:35:33 2018 -0400

    Use cygpath to convert windows paths

commit 70b93e4d863c1ff2a6498455339e17df3d7fe784
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 07:14:59 2018 -0400

    try to fix windows builds

commit 377134d7a946df13b60ff9c9dacc895e82c36178
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 07:06:01 2018 -0400

    Reduce verbosity

commit d01ef5b875dedcb9f7b3039b2334cbd594fdfcd4
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 06:23:29 2018 -0400

    iOS builds

commit d13583f55fb31a302684cbc62c300ae81eb577e9
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 06:22:57 2018 -0400

    Fix -L support

commit d49911544bf9d2b4fab782b0c5e76a68074223df
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 05:59:26 2018 -0400

    Fix quoting

commit 8f47ec404fcf5a082fc4537ede8cdf897f4c5226
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 05:35:35 2018 -0400

    Don't set AM_MAKEFLAGS

commit df314193dc6cd00978b6e1517866448b604199af
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 05:13:38 2018 -0400

    Run tests with lots of debug output

commit b394947518fb15887802fe3bc7f0a337c495d65d
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 05:11:52 2018 -0400

    Add -L and -l support

commit 33da6c075299317885385f19680b58a1e9feab5e
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 05:07:08 2018 -0400

    Mention C99 and build requirements

commit e6bdbd7888b5c8a90f3c91f4d6caf3c8d574f3b5
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 04:46:04 2018 -0400

    Remove reference to wiki

commit 24eb1f88d788399dde5fbb4804767e6b6cbf1bc8
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 04:09:56 2018 -0400

    Refactor travis build instructions.  Add iOS build

commit ffc3ff162a15ed0ed0e946815c950c69ee0c8343
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 04:02:06 2018 -0400

    Add issue template

commit 5c2ca479e726dc2feec43e25475c63361387bf20
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 27 04:01:37 2018 -0400

    Remove uninitialized warning. Fix #163.

commit 0081378017c33a4b9b6fbf20efabdd9959d6a48d
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Mar 24 09:05:14 2018 -0400

    revert

commit 59d44242e15d2979291fe6793ddfb2681b7480ef
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Mar 24 08:45:59 2018 -0400

    Try bhaible tests in appveyor

commit 6f7c29c5a6d2850ce53b99efcc71fcc4e8f8c8cc
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Mar 24 08:40:04 2018 -0400

    Formatting fixes

commit f3c2729ee4026c9f70a6656603bac8ba2ec40a5d
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Mar 23 11:47:29 2018 -0400

    Add libffi.map.in to extra dist files

commit 6d2233f96a08c5ac01a64e7b84e2bd678eed0a4b
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Mar 23 09:06:08 2018 -0400

    Add sparc solaris build notes

commit 99a80d2fc4ede48348af2edfb7126d60609c4b71
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 18 21:22:55 2018 -0400

    Fix formatting

commit a3e87ac8e7b7e609ab84541a69c7e51873efa437
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 18 20:36:52 2018 -0400

    Fix formatting

commit cec3a3a201f17a7f018f25e1a0917bd5206e5a5a
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 18 16:00:04 2018 -0400

    Don't align-double for 32-bit x86

commit f34f8039c10c4d8d728bc335dcf2b2a38f6e8b50
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 18 15:30:00 2018 -0400

    Remove debug output

commit f31b915314b12904b858b54cfdf670ceaeda7b2d
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 18 15:13:21 2018 -0400

    Add m4/ax_require_defined.m4

commit a2dc5848b53e9e45ff68e5ef70683b5ffb82592e
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 18 13:41:15 2018 -0400

    travis debug

commit 81d345b2cff039c4389fad283a108ad978b609e0
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 18 13:32:03 2018 -0400

    Update autoconf archive macros

commit 369ef49f71186fc9d6ab15614488ad466fac3fc1
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 18 12:53:42 2018 -0400

    Add missing FFI_GNUW64 enum

commit 56655e58c7f966685c0d5635ee7215733121ae41
Merge: 43980dd 9bc40d8
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 18 12:34:18 2018 -0400

    Merge branch 'master' of github.com:/libffi/libffi

commit 43980dd10e0d5705e52f24d63988b722e31bf330
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 18 12:32:10 2018 -0400

    Add FFI_GNUW64 ABI for GNU 80-bit long double support

commit 9bc40d87ea5950969b234ed56cd2c6acd883fa0e
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 18 12:32:10 2018 -0400

    Add FFI_GWIN64 ABI for GNU 80-bit long double support

commit d46406088d28b038a0a0f7396d9621f431482f6a
Author: Ryan C. Underwood <nemesis@icequake.net>
Date:   Sun Mar 18 07:00:42 2018 -0700

    Fully allocate file backing writable maps (#389)
    
    When ftruncate() is used on a filesystem supporting sparse files,
    space in the file is not actually allocated.  Then, when the file
    is mmap'd and libffi writes to the mapping, SIGBUS is thrown to
    the calling application.  Instead, always fully allocate the file
    that will back writable maps.

commit 247e44b3ef653f210de614a749b71449b8c70764
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 18 07:01:54 2018 -0400

    Fix return values

commit 1f99701fad1761ffe4e9adf88cfe26f74f427e7c
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Mar 17 22:49:58 2018 -0400

    Make tests compile/run standalone

commit d974207cd6373ff282a64038564d99b853dc3fab
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Mar 17 09:03:42 2018 -0400

    Formatting fixes.  Add 'bug fixes' note.

commit a33bfa9b12993aae2edf669f62e141a84286d4de
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Mar 17 07:17:24 2018 -0400

    xfail unwind tests for moxie

commit 8bf05481436ba085df3adfff2b47a879df738d67
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Mar 16 23:54:28 2018 -0400

    Install moxie libstdc++

commit 84b383eda67ba75a6456e4b3587f17b749e6e1a1
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Mar 16 23:36:51 2018 -0400

    Install moxie-elf-g++

commit 6a801d042ac1212fe8c0e11abb865061e515aa43
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Mar 16 17:53:33 2018 -0400

    Fix closure case where 8-byte value is partially passed in register.  Fixes cls_many_mixed_float_double test case.

commit 0f0ba9e0ec52e0297c91cb63a889980a6f847219
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Mar 16 07:28:33 2018 -0400

    Run dejagnu's runtest with -a option to prevent travis timeouts after 10min

commit 725454196afab82f7da7bd719e8bddf7cd7837dd
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Mar 15 08:17:18 2018 -0400

    fix .travis.yml

commit d71051c46a795a0669b2d83804030746f790edf4
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Mar 14 21:21:06 2018 -0400

    fix .travis.yml

commit e86aa54ce3418081dca403217c9216c773b82560
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Mar 14 21:00:55 2018 -0400

    fix .travis.yml

commit 5b538ed61fb13efc8f01bad014c5485231714c96
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Mar 14 20:32:00 2018 -0400

    fix .travis.yml

commit 6ed64a7953178cf07d2793650fcd64caa6b51d53
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Mar 14 20:22:33 2018 -0400

    fix .travis.yml

commit 90809e928f8b5a0cdf0787d799111bc33689a9d1
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Mar 14 14:09:39 2018 -0400

    fix .travis.yml

commit 85e4c62351bd1e45dd6d77916778e18c435f1723
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Mar 14 13:47:27 2018 -0400

    fix .travis.yml

commit aa8a5ec4a4ec4a4460ec3cd4e396e09ceaa3a2fa
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Mar 14 13:25:04 2018 -0400

    fix .travis.yml

commit 7c3e5da401ab7efef83a5bd4e7f64b0df053da0c
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Mar 14 13:07:04 2018 -0400

    fix .travis.yml

commit 19aec1989382fab8bd86c556aa24751a75b8246e
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Mar 14 12:40:58 2018 -0400

    Fix travis.yml

commit bf337b070977fb7e8934fc91e4d0e60209f53448
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Mar 14 12:15:04 2018 -0400

    yaml syntax error fix

commit 076d5a987e016669993154b91525b02978c56727
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Mar 14 11:13:32 2018 -0400

    markdown fixes

commit d2f7e788aecf37971c9be1cd650f78a3e4061e18
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Mar 14 09:06:38 2018 -0400

    Fix test cases with short results

commit 18fe190068563bb2bf52a0993017887f438c85a4
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Mar 14 08:02:10 2018 -0400

    Debug travis output

commit 718a4177f23e9d6c5476d0118d49a3a093d72c6c
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Mar 14 07:40:53 2018 -0400

    test

commit 486c34b65deb43d6d9025b2a40284606f97f4e0b
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 13 23:31:18 2018 -0400

    debug

commit 00464aa52022674bdc1f5aa9b2ceb575c9a04b87
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 13 23:30:52 2018 -0400

    debug

commit eb0544d0d42e5aef56ee1df0861bcd0c95102f88
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 13 23:20:15 2018 -0400

    Debug env

commit 9d5bd29d8dfb5f89d0927a175443240a19e93890
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 13 23:07:10 2018 -0400

    Refactor

commit 52a364d7699230be5e883f32b9ac0caaea0300b1
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 13 22:49:48 2018 -0400

    fix moxie build

commit 1a32b3f146f7ade701cea74e3983b16145f93393
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 13 22:44:13 2018 -0400

    fix moxie build

commit e8958c3a64b5e59f0477bcaafaf9c03337d9f445
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 13 22:36:41 2018 -0400

    revert test

commit 58315ae125482c44821cfbdce41e350380024d0e
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 13 22:35:50 2018 -0400

    test

commit 6239c28741a8abc1bd06cb47329d8c5cdb359c90
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 13 22:13:44 2018 -0400

    Add experimental moxie travis build

commit 01db31d94e97e71836fe862826bc8a2a399dd619
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 13 20:41:55 2018 -0400

    Update moxie sub opcode

commit e8f5a43033d53ad631ba477b78a3def61783a1dc
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 13 09:27:00 2018 -0400

    Fix appveyor badge

commit d1689dd3bf78f4975aa6a6a16cbffcb794283acb
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 13 09:24:37 2018 -0400

    Fix travis badge.  Add REAME.md to dist files

commit 785351fbc2a49f05535c412067ac51f906612779
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 13 09:21:49 2018 -0400

    Preformat release notes

commit 8c7fbd1616b075e3077346c7bf56befd723a9355
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 13 09:20:44 2018 -0400

    Preformat release notes

commit 54f31b00562e75e6aae2b736c70e6713618640cb
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 13 09:17:57 2018 -0400

    Try to fix table

commit 3a29a27a86624512f405e4c9962276485517caf1
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 13 09:14:40 2018 -0400

    Clean up markdown table

commit fbfc3b048fcf3f699f4495ca70b7e58461a0df4f
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 13 09:12:21 2018 -0400

    Move to markdown

commit a31d3d3ba6644d308b6fb8cea2a60976e0531f4a
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 13 09:11:24 2018 -0400

    Add travis and appveyor build badges

commit 16313cb2746ceed6bc1d25b52604642c14758e01
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 13 08:52:30 2018 -0400

    Support compiler specific warning suppression flags

commit cca6d1fb549e422514df4aad68f2ca9a8313327d
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 13 08:51:34 2018 -0400

    Support compiler specific warning suppression flags

commit 9291f941c2df5ddf967f701b258ac2b3cc9d0820
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 13 08:37:21 2018 -0400

    Add bhaible's missing Makefile

commit bede01d82ec2f1cfe2bb42233fcd408a6e3a6323
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 13 07:53:33 2018 -0400

    Remove stray directory

commit 9aefbb1031c9be7c5121ab24742e025ccff236c4
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 13 07:51:02 2018 -0400

    Update version number to next pre-release

commit ddf7a8f7511a038342f56c08dac718148e2f0151
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 13 07:47:57 2018 -0400

    Update test list for dist

commit 6186261cb36a33abbf31430569f83ccd7685474e
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Mar 12 21:53:18 2018 -0400

    Add Bruno Haible and Bill Triggs' libffi testsuite

commit 4e8f79d5587ddb8e027f4df213e90f943e286594
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 11 18:21:46 2018 -0400

    Next release will be 3.3

commit 3840d49aaa831d649b1597518a2903dfed0d57f3
Author: Stef O'Rear <sorear2@gmail.com>
Date:   Sun Mar 11 05:55:15 2018 -0700

    New RISC-V port (#281)
    
    * Add RISC-V support
    
    This patch adds support for the RISC-V architecture (https://riscv.org).
    
    This patch has been tested using QEMU user-mode emulation and GCC 7.2.0
    in the following configurations:
    
    * -march=rv32imac -mabi=ilp32
    * -march=rv32g -mabi=ilp32d
    * -march=rv64imac -mabi=lp64
    * -march=rv64g -mabi=lp64d
    
    The ABI currently can be found at
    https://github.com/riscv/riscv-elf-psabi-doc/blob/master/riscv-elf.md .
    
    * Add RISC-V to README
    
    * RISC-V: fix configure.host

commit dca52b55bc2ac0213c20849d7e9e19fbc9202023
Merge: 83d9aba 11de69d
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 11 08:50:01 2018 -0400

    Merge pull request #406 from trofi/master
    
    ia64: fix variadic function closures with FP arguments

commit 83d9aba3a44dff8426052312a9445a7ef52f1db1
Merge: ab15405 b58caef
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 11 08:48:42 2018 -0400

    Merge pull request #407 from trofi/ia64-small-struct
    
    ia64: fix small struct return

commit ab154056937782c1c7f7005c8b46c5179bc719cb
Merge: 9429968 e66fd67
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 11 08:46:58 2018 -0400

    Merge pull request #409 from andreas-schwab/master
    
    Revert "Fix passing struct by value on aarch64"

commit e66fd678200db456a2e9860e80451773efa96fe0
Author: Andreas Schwab <schwab@suse.de>
Date:   Tue Feb 20 10:47:09 2018 +0100

    Revert "Fix passing struct by value on aarch64"
    
    This reverts commit 482b37f00467325e3389bab322525099860dd9aa.
    
    That was actually a bug in python, see <https://bugs.python.org/issue30353>.

commit b58caef7fd620408be9239ac24ea89d5bc84f30b
Author: Sergei Trofimovich <slyfox@gentoo.org>
Date:   Sat Feb 17 19:00:40 2018 +0000

    ia64: fix small struct return
    
    This change fixes libffi.call/struct10.c failure on ia64:
    FAIL: libffi.call/struct10.c -W -Wall -Wno-psabi -O0 execution test
    
    .Lst_small_struct handles returns for structs less than 32 bytes
    (following ia64 return value ABI [1]). Subroutine does roughly the
    following:
    
    ```
        mov [sp+0]  = r8
        mov [sp+8]  = r9
        mov [sp+16] = r10
        mov [sp+24] = r11
        memcpy(destination, source=sp, 12);
    ```
    
    The problem: ia64 ABI guarantees that top 16 bytes of stack are
    scratch space for callee function. Thus it can clobber it. [1]
    says (7.1 Procedure Frames):
    """
    * Scratch area. This 16-byte region is provided as scratch storage
      for procedures that are called by the current procedure. Leaf
      procedures do not need to allocate this region. A procedure may
      use the 16 bytes at the top of its own frame as scratch memory,
      but the contents of this area are not preserved by a procedure call.
    """
    
    In our case 16 top bytes are clobbered by a PLT resolver when memcpy()
    is called for the first time. As a result memcpy implementation reads
    already clobbered data frop top of stack.
    
    The fix is simple: allocate 16 bytes of scrats space prior to memcpy()
    call.
    
    [1]: https://www.intel.com/content/dam/www/public/us/en/documents/guides/itanium-software-runtime-architecture-guide.pdf
    
    Bug: https://bugs.gentoo.org/634190
    Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>

commit 45da2fcbcd0ecaba673275d22b04fac3e4376e22
Author: Sergei Trofimovich <slyfox@gentoo.org>
Date:   Sat Feb 17 18:53:02 2018 +0000

    new test: return small struct
    
    The bug originally was discovered in https://bugs.gentoo.org/634190
    where complicated callback was returning invalid data on ia64.
    
    This change adds minimal reproducer that fails only on ia64 as:
    
    FAIL: libffi.call/struct10.c -W -Wall -Wno-psabi -O0 execution test
    FAIL: libffi.call/struct10.c -W -Wall -Wno-psabi -O2 execution test
    FAIL: libffi.call/struct10.c -W -Wall -Wno-psabi -O3 execution test
    FAIL: libffi.call/struct10.c -W -Wall -Wno-psabi -Os execution test
    
    Test passes on amd64. The fix is in the following commit.
    
    Bug: https://bugs.gentoo.org/634190
    Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>

commit 11de69ddb788e4d87ef653898878384116ac16c6
Author: Sergei Trofimovich <slyfox@gentoo.org>
Date:   Sun Feb 11 11:29:39 2018 +0000

    ia64: fix variadic function closures with FP arguments
    
    libffi test framework already flagged failures as:
    
    ```
        FAIL: libffi.call/cls_double_va.c -W -Wall -Wno-psabi -O0 output pattern test, is 7.0
        res: 4
        0.0
        res: 4
        ? should match 7.0
        ?es: 4
        ?.0
        res: 4
    ```
    
    Failure happens here at
    
    ```c
        // testsuite/libffi.call/cls_double_va.c
        ...
        char*  format    = "%.1f\n";
        double doubleArg = 7;
        ...
        CHECK(ffi_prep_closure_loc(pcl, &cif, cls_double_va_fn, NULL,
                                   code) == FFI_OK);
        res = ((int(*)(char*, ...))(code))(format, doubleArg);
    ```
    
    libffi expects 'doubleArg' to be located in 'f9' (second FP argument) but
    gcc placed it to 'r33' (second GR).
    
    ia64 software [1] manual described argument passing ABI in
    "8.5.2 Register Parameters" as:
    
    """
        If an actual parameter is known to correspond to a floating-point
        formal parameter, the following rules apply:
        a) The actual parameter is passed in the next available floating-point
           parameter register, if one is available. Floating-point parameter
           registers are allocated as needed from the range f8-f15, starting
           with f8.
        b) If all available floating-point parameter registers have been used,
           the actual parameter is passed in the appropriate general register(s).
           (This case can occur only as a result of homogeneous floating-point
           aggregates, described below.)
    
        If a floating-point actual parameter is known to correspond to
        a variable-argument specification in  the formal parameter list,
        the following rule applies:
        c) The actual parameter is passed in the appropriate general
           register(s).
    
        If the compiler cannot determine, at the point of call,
        whether the corresponding formal parameter is a varargs parameter,
        it must generate code that satisfies both of the above conditions.
        (The compiler’s determination may be based on prototype declarations,
        language standard assumptions,  analysis, or other user options or
        information.)
    """
    
    We have [c] case here and gcc uses only GR for parameter passing.
    
    The change binds known variadic arguments ro GRs instead of FPs as those
    are always expected to be initialized for all variadic call types.
    
    This fixes all 10 failures on ia64-unknown-linux-gnu:
    
    ```
                     === libffi Summary ===
        -# of expected passes            1945
        -# of unexpected failures        10
        +
        +# of expected passes            1955
    ```
    
    [1]: https://www.intel.com/content/dam/www/public/us/en/documents/guides/itanium-software-runtime-architecture-guide.pdf
    
    Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>

commit 9429968b828de8775cfd7f139374888943f2186a
Merge: f08b2be 28d3b61
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Feb 10 23:23:33 2018 -0500

    Merge pull request #403 from frida/fix/x86-sysv-pic-closure-regression
    
    Fix x86 SysV closure in PIC mode

commit f08b2be6273f471863f1ea1afb0078a96fe73d74
Merge: c194448 482b37f
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Feb 10 23:21:49 2018 -0500

    Merge pull request #405 from andreas-schwab/master
    
    Fix passing struct by value on aarch64

commit 482b37f00467325e3389bab322525099860dd9aa
Author: Andreas Schwab <schwab@suse.de>
Date:   Mon Sep 18 12:44:08 2017 +0200

    Fix passing struct by value on aarch64
    
    This fixes the ctypes test in the python testsuite.

commit 28d3b61bdd8b9fe786cb431165f2fb95f4e275d3
Author: Ole André Vadla Ravnås <oleavr@gmail.com>
Date:   Sat Jan 20 23:56:17 2018 +0100

    Fix x86 SysV closure in PIC mode
    
    The assembly single-line comments swallowed up the remaining assembly
    code of the macros due to lack of line-endings.
    
    This is a regression introduced in b7f6d7a.

commit c194448ef08b4c0183c68dda95a4b8b9cfc47985
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jan 10 09:38:15 2018 -0500

    adjust env usage in travis

commit 5314b1067145d30acdc5bba3bebb788e8acfdaae
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jan 10 07:22:51 2018 -0500

    test static lib

commit bec6135dff061a35065efc106f920940a82c28ee
Merge: f6ecf10 d15581c
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jan 10 07:20:04 2018 -0500

    Merge pull request #393 from thejunkjon/master
    
    Linker error "recompile with -fPIC" for x86_64

commit f6ecf10ca021e94d496c75cc43c417161edf28b3
Merge: c50ba18 746dbe3
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Jan 5 16:51:44 2018 -0500

    Merge pull request #401 from wzssyqa/jr-r6
    
    mips/ffi.c: fix encoding for jr on r6

commit 746dbe3a6a79a41931c03b51df2972be4d5e5028
Author: YunQiang Su <wzssyqa@gmail.com>
Date:   Wed Jan 3 10:07:41 2018 +0800

    mips/ffi.c: fix encoding for jr on r6
    
    mips/ffi.c: instruction jr has a different encoding for r6

commit c50ba182f43537e29dd92cfd9b2fa7a30549a06e
Merge: 54cb3e2 af6949b
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jan 1 15:18:46 2018 -0500

    Merge pull request #398 from emaste/master
    
    Enable symbol versioning when ld is LLVM's lld

commit 54cb3e2345ee8e2483d4705a9fb2967b6e5a9bd1
Merge: 716bfd8 94c102a
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Dec 31 07:46:05 2017 -0500

    Merge pull request #396 from wzssyqa/master
    
    mips/n32.S: disable .set mips4 on mips r6

commit af6949b7af98404729e04227165d0e32ce550ce8
Author: Ed Maste <emaste@freebsd.org>
Date:   Sun Dec 17 23:08:12 2017 -0500

    Enable symbol versioning when ld is LLVM's lld
    
    Fixes #397

commit 94c102aa69b04337f63498e0e6551fcdce549ae5
Author: YunQiang Su <wzssyqa@gmail.com>
Date:   Sun Dec 10 14:25:01 2017 +0800

    Not set mips on mips r6
    
    MIPS release changed encodes of some instructions, include ll/sc etc.
    
    if .set mips4 on mips r6, as will generate some wrong encode of some instructions.

commit d15581c6969657c79afcff4865bdc8f5ff23a2f7
Author: jon <thejunkjon@gmail.com>
Date:   Fri Dec 1 00:34:30 2017 -0800

    Updating calls to ffi_closure_unix64_inner and ffi_closure_win64_inner to use PLT.  Without this fix, statically linking libffi causes the linker error i.e. 'requires dynamic R_X86_64_PC32 reloc against ffi_closure_unix64_inner which may overflow at runtime; recompile with -fPIC)'

commit 716bfd83177689e2244c4707bd513003cff92c68
Merge: 4fdbb05 cd5e9f8
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Nov 5 09:02:37 2017 -0500

    Merge pull request #387 from trofi/master
    
    Makefile.am: add 'src/s390/internal.h' to source tarball

commit cd5e9f8b87cc387d3ffef4db81ee6af200a84183
Author: Sergei Trofimovich <slyfox@gentoo.org>
Date:   Sun Nov 5 13:56:42 2017 +0000

    Makefile.am: add 'src/s390/internal.h' to source tarball
    
    commit 2f530de168e0253ac06e044c832132c496e8788b
    ("s390: Reorganize assembly") introduced new header
    (similar to other arches) but did not add it to source
    tarball.
    
    As a result build from 'make dist' tarballs failed as:
    
    ```
    ../src/s390/ffi.c:34:10: fatal error: internal.h: No such file or directory
     #include "internal.h"
              ^~~~~~~~~~~~
    ```
    
    To fix it the change adds file to 'Makefile.am'.
    
    Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>

commit 4fdbb0578e921a9da146c2b040061a3a39fe4fda
Merge: b302bc3 2bfcd29
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Nov 3 07:05:31 2017 -0400

    Merge pull request #320 from 0-wiz-0/master
    
    Support NetBSD with mprotect.

commit b302bc3dfe47e3ea57de11610fced3170c06df28
Merge: 14eac93 1fb788a
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Nov 3 07:03:55 2017 -0400

    Merge pull request #322 from compnerd/aarch64-base
    
    aarch64: fix index base register for AArch64

commit 14eac93869eb109bea1daeb4f00609169d5488ff
Merge: ad15ae7 9fc9dc5
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Nov 3 06:49:03 2017 -0400

    Merge pull request #384 from yan12125/fix-sgidefs-checking
    
    Fix linux detection (closes #303)

commit 9fc9dc535ee7af28f49f86a8ecacb7f575c46ba4
Author: Yen Chi Hsuan <yan12125@gmail.com>
Date:   Fri Oct 27 16:12:56 2017 +0800

    Fix linux detection (closes #303)

commit 1fb788ac898290d8e3044ca4c0a4fb3c3c254ce5
Author: Saleem Abdulrasool <compnerd@compnerd.org>
Date:   Tue Oct 10 11:37:00 2017 -0700

    aarch64: fix index base register for AArch64
    
    The base is passed in `x3`, not in `x2`.  This fixes the indexing base
    so that the right value is used.

commit ad15ae762c8b3999e626ebccb9cf454455119555
Merge: dc2ff5b 5e4fcdc
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Oct 25 13:16:49 2017 -0400

    Merge pull request #298 from frida/fix/ios-trampoline-table-complexity
    
    Simplify iOS trampoline table allocation

commit dc2ff5baabf89d473d61ae4b468638f8ea98bb04
Merge: 927da71 79d1509
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Oct 25 13:11:40 2017 -0400

    Merge pull request #323 from compnerd/x86-alloca-alignment
    
    x86: align alloca to 16-byte boundary

commit 927da71662f349f656fc1c5d0aaa533005e24f47
Merge: a0455c0 181fc4c
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Oct 25 13:05:53 2017 -0400

    Merge pull request #379 from jlj/master
    
    Xcode build improvements

commit a0455c031824c6ab3f1a7a6ef9912edad6ebd742
Merge: 0faf614 9d9d92b
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Oct 25 13:04:23 2017 -0400

    Merge pull request #383 from hjl-tools/hjl/master
    
    Hjl/master

commit 0faf614529ae7ac8bc929415a6e1b076ba1b8cc5
Merge: 8d26e8c 3c372c3
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Oct 25 13:03:55 2017 -0400

    Merge pull request #381 from compnerd/ffi-nullptr-deref
    
    arm: fix a level of indirection issue

commit 9d9d92b47f3f73644f808ae38e97d1ea8f4d22df
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Oct 25 04:59:31 2017 -0700

    Skip WIN64/EFI64 support for x32
    
    Since x32 doesn't support WIN64/EFI64, skip it if __ILP32__ is defined.

commit b2a343ffc68f1af5368281e063c0ca5571c611cc
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Oct 25 04:36:49 2017 -0700

    Don't include WIN64/EFI64 for x32
    
    Since x32 doesn't support WIN64/EFI64, don't include it for x32.  Also
    x32 has sizeof size_t == 4.  But TARGET should be X86_64.

commit 3c372c384a94db23fdaf9fe64a4beb86159cf6d3
Author: Saleem Abdulrasool <compnerd@compnerd.org>
Date:   Tue Oct 24 13:53:56 2017 -0700

    arm: fix a level of indirection issue
    
    Rather than relying on the stack being 0'ed out always, do it manually.
    The stack generally happened to be zero, and because the compiler
    realizes that the tests are dealing with chars truncates the read value.
    However, the top 3 nibbles of the value are undefined and may be
    non-zero.  The indirection level caused a null-pointer dereference.
    
    Explicitly scribbling on the stack during the allocation causes test
    failures without the original zexting behaviour.

commit 181fc4cc9ca211f3bc8209cecf3b2348b0674e21
Merge: 8d26e8c 54529ba
Author: Jean-Luc Jumpertz <jean-luc@celedev.eu>
Date:   Mon Oct 23 15:02:29 2017 +0200

    Merge branch 'master' based on ksjogo/libffi
    
      Added a tvOS target in Xcode project. Misc Xcode project cleanup.
      Fix macOS build target in Xcode project.
    
    # Conflicts:
    #       src/aarch64/ffi.c
    #       src/x86/ffi64.c

commit 54529ba1db9974b5efcbd2e893c44b6b01b0b2c8
Author: Jean-Luc Jumpertz <jean-luc@celedev.eu>
Date:   Mon Oct 23 09:49:35 2017 +0200

    Added a tvOS target in Xcode project. Misc Xcode project cleanup.

commit 79d1509cb06ba9067f56e2c62394d7bc60fa6bf2
Author: Saleem Abdulrasool <compnerd@compnerd.org>
Date:   Tue Oct 10 11:39:45 2017 -0700

    x86: align alloca to 16-byte boundary
    
    Align the stack allocation to a 16-byte boundary.  This ensures that the
    stack parameters are 16-byte aligned which is needed for some
    instructions.

commit 8d26e8c6da23b10331181a4bbf837f479ce5d7d2
Merge: 1c9171e ed7488c
Author: Tom Tromey <tom@tromey.com>
Date:   Tue Oct 17 10:46:49 2017 -0600

    Merge pull request #326 from trofi/master
    
    src/ia64/unix.S: unbreak small struct handling

commit ed7488c003765c7ee71b7da3e8c21f431b043809
Author: Sergei Trofimovich <slyfox@gentoo.org>
Date:   Tue Oct 17 13:00:51 2017 +0100

    src/ia64/unix.S: unbreak small struct handling
    
    commit 6e8a4460833594d5af1b4539178025da0077df19
    added FFI_TYPE_COMPLEX value type (comes after FFI_TYPE_POINTER)
    
    ia64 ffi_closure_unix reiles on the ordering of
    FFI_ enums as ia64 has ia64-specific FFI types:
    small struct and FPU extesions.
    
    As a result all tests handling small structs broke.
    
    The change fixes dispatch table by adding (no-op)
    FFI_TYPE_COMPLEX entry
    This has positive effect of unbreaking most tests
    on ia64:
    
                     === libffi Summary ===
    
    -# of expected passes            1595
    -# of unexpected failures        295
    +# of expected passes            1930
    +# of unexpected failures        10
     # of unsupported tests          30
    
    Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>

commit 1c9171ec89943d9b4b10a54091c8b5c104eb258d
Merge: 9f1f874 7ad0ae7
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Oct 10 23:19:57 2017 -0400

    Merge pull request #324 from compnerd/arm-zext
    
    arm: zext return value parameters

commit 7ad0ae7f42f3e208431ab66a9032dc9549f978d0
Author: Saleem Abdulrasool <compnerd@compnerd.org>
Date:   Tue Oct 10 11:44:05 2017 -0700

    arm: zext return value parameters
    
    The closure function (invoked as closure->fun in ffi_closure_XXX_inner)
    will only populate the actual number of bytes for the true return type,
    which may be a character.  This leaves garbage on the stack when the
    assembly closure function (i.e. ffi_closure_XXX) reads the return value
    off of the stack into r0 as a 4-byte value.  ffi_closure_XXX always
    leaves room for at least 4 bytes here, so we can safely set them to 0.
    Otherwise, if there is garbage in any of these bytes, these end up in r0
    and in the returned value as well.

commit 2bfcd29955c02b67fa10a68cc4200f6838181e0f
Author: Joerg Sonnenberger <joerg@NetBSD.org>
Date:   Mon Oct 2 15:34:03 2017 +0200

    Support NetBSD with mprotect.
    
    Signed-off-by: Thomas Klausner <wiz@NetBSD.org>

commit 9f1f8741b2ec0c8898ecff7b93005627b915dd02
Merge: dca078f 6cf0dea
Author: Tom Tromey <tom@tromey.com>
Date:   Sun Oct 1 20:25:50 2017 -0600

    Merge pull request #319 from angerman/patch-5
    
    Adds `local.exp` to DISTCLEANFILES

commit 6cf0dea78a5a4584eda871e264043974d0453e53
Author: Moritz Angermann <moritz.angermann@gmail.com>
Date:   Mon Oct 2 10:20:16 2017 +0800

    Change CLEANFILES to DISTCLEANFILES

commit dca078f468ff696134195e85fed3f48260115651
Merge: 540258d bccba9a
Author: Tom Tromey <tom@tromey.com>
Date:   Sun Oct 1 20:19:53 2017 -0600

    Merge pull request #316 from angerman/patch-2
    
    Add `configure.host` and `libtool-version` to the `EXTRA_DIST` files

commit 540258d13e1d427254cbeddacdd2bb1ab2c307d1
Merge: 93d8e7d 4c6aa78
Author: Tom Tromey <tom@tromey.com>
Date:   Sun Oct 1 20:17:02 2017 -0600

    Merge pull request #317 from angerman/patch-3
    
    Add src/x86/asmnames.h to noinst_HEADERS

commit bccba9a34e8ba0fe671c4b94671fea2efe181b01
Merge: a1e6ccb 59d65d7
Author: Moritz Angermann <moritz.angermann@gmail.com>
Date:   Sun Oct 1 12:48:17 2017 +0800

    Merged

commit 6b6df1a7bb377651a07663879bd4162f0059dc5c
Author: Moritz Angermann <moritz.angermann@gmail.com>
Date:   Sun Oct 1 12:37:53 2017 +0800

    Adds `local.exp` to CLEANFILES
    
    With #315, #316, #317, #318 and this patch, running
    ```
    AM_DISTCHECK_CONFIGURE_FLAGS=--disable-docs make distcheck
    ```
    should complete successfully.

commit 59d65d74ae72bd24fbf78f045592c5168f0b0784
Author: Moritz Angermann <moritz.angermann@gmail.com>
Date:   Sun Oct 1 12:23:31 2017 +0800

    Include `libtool-version` in the EXTRA_DIST files.

commit 4c6aa78d75f0c426a23c27af74155aa2535021d6
Author: Moritz Angermann <moritz.angermann@gmail.com>
Date:   Sun Oct 1 11:32:41 2017 +0800

    Add src/x86/asmnames.h to noinst_HEADERS
    
    In eaa59755fcbb692a8cb763c7f9f24a350aadbd30, macros from `unix64.S` were extracted into `asmnames.h` to be used with `win64.S` as well. As such these are required by `unix64.S`, which fails to build without them.

commit a1e6ccb67e7d7f2b235016aa6c6733c5743945a1
Author: Moritz Angermann <moritz.angermann@gmail.com>
Date:   Sun Oct 1 11:28:40 2017 +0800

    Add `configure.host` to the `EXTRA_DIST` files
    
    When running `make dist`, `configure.host` would not result in the distribution tarball, however `configure` would try to read it, and as such the tarball would not be buildable.

commit 93d8e7dd17b08ff195af3580584ccd5c2228202f
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Sep 27 21:51:34 2017 -0400

    Fix #265

commit 02a5145abbae2e311d5aeeee606c5b5745a99b55
Merge: 10099d6 7d504f7
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Sep 27 21:43:03 2017 -0400

    Merge pull request #263 from ksjogo/master
    
    fix ios builds

commit 10099d6cad8418a10c1508235d1f458993ac51fe
Merge: c8f1aa3 ed84883
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Sep 27 20:54:09 2017 -0400

    Merge pull request #271 from frida/fix/qnx-cache-flushing
    
    arm: Fix cache flushing on QNX

commit c8f1aa3d0459c6f1be6884b324b4d2d785ecfd78
Merge: db4dad9 50e408c
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Sep 27 20:53:50 2017 -0400

    Merge pull request #307 from zw3rk/master
    
    Support -ios triple

commit db4dad97e2589ca700d1b5b54eeb332137a152ad
Merge: 8a16f2f 9c12209
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Sep 27 20:47:08 2017 -0400

    Merge pull request #312 from fjricci/fix_ub
    
    Fix misaligned memory access in ffi_call_int

commit 8a16f2f47fdb6a985d201baa02a1d226562af4d8
Merge: b230910 0ff9419
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Sep 27 20:45:15 2017 -0400

    Merge pull request #308 from trex58/master
    
    This patch enables FFI Go Closure on AIX.

commit a78da73956e4b0af4556f1c0a444bd0f065c3965
Author: Jean-Luc Jumpertz <jean-luc@celedev.eu>
Date:   Mon Sep 4 15:55:34 2017 +0200

    Fix macOS build target in Xcode project.
    
    - Add missing files for desktop platforms in generate-darwin-source-and-headers.py, and in the Xcode project.
    - Add a static library target for macOS.
    - Fix "implicit conversion loses integer precision" warnings for iOS mad macOS targets.

commit 9c12209d2eac40238eefb4255994277918e7eff1
Author: Francis Ricci <francisjricci@gmail.com>
Date:   Thu Aug 3 10:46:28 2017 -0700

    Fix misaligned memory access in ffi_call_int

commit b23091069adce469dc38fbcc9fd8ac9085d3c9d7
Merge: c0cc9f1 9c6cb58
Author: Tom Tromey <tom@tromey.com>
Date:   Wed Jul 12 12:43:06 2017 -0600

    Merge pull request #309 from rurban/oldgcc
    
    __attribute__ deprecated (msg) only since gcc 4.5

commit 9c6cb58812aa92a4c56a94b2b51bd85b2aebc2a1
Author: Reini Urban <rurban@cpan.org>
Date:   Sun Jun 18 18:26:05 2017 +0200

    __attribute__ deprecated (msg) only since gcc 4.5
    
    make it work with older compilers

commit 50e408ce5d9eb6f14bf82bb3894d0e74e5f19c2c
Author: Moritz Angermann <moritz.angermann@gmail.com>
Date:   Sun May 21 20:44:10 2017 +0800

    add i?86-*-ios -- the iOS simulator (32bit)

commit a08cabe6746343564418383b879d40d3b998c399
Author: Moritz Angermann <moritz.angermann@gmail.com>
Date:   Sun May 21 20:25:16 2017 +0800

    add x86_64-*-ios -- the iOS simulator

commit 0ff9419f2e75652426469e256cb7d0748064ad58
Author: Tony Reix <tony.reix@bull.net>
Date:   Wed May 17 14:57:53 2017 +0200

    This patch enables FFI Go Closure on AIX.

commit 19ab448d84223d2992048bce4e926eac2c44f606
Author: Moritz Angermann <moritz.angermann@gmail.com>
Date:   Tue May 16 08:32:06 2017 +0800

    Support -ios triple
    
    Autoconf hasn’t had an update since 2014, and it doesn’t look like it will soon[1]
    This updates config.{guess,sub}
    
    It adds support for e.g. `-ios`, which allows to have targets like `aarch64-apple-ios`.
    
    It basically does exactly what the config.guess script says:
    > It is advised that you download the most up to date version of the config scripts from
    
    The configure.ac script has been updated to relax `*-apple-darwin*` to `*-apple-*`.
    Similarly the `.gitignore` and `autogen.sh` needed to be updated to respect the
    newer `config.{sub,guess}`
    
    —
    [1]: http://lists.gnu.org/archive/html/autoconf/2016-07/msg00017.html

commit c0cc9f1df9fd4c5e758470f05d0e48123f0638ae
Merge: b841ae7 bd72848
Author: Tom Tromey <tom@tromey.com>
Date:   Mon May 8 15:20:39 2017 -0600

    Merge pull request #302 from gpakosz/align-macros
    
    Prefix ALIGN macros with FFI_

commit bd72848c7af9302df50a7a11652c77166d17caa8
Author: Gregory Pakosz <gregory.pakosz@gmail.com>
Date:   Thu Apr 27 13:20:36 2017 +0200

    Prefix ALIGN macros with FFI_

commit 7d504f7a8e33f6da27941f5dc5d889fe60b8b9c8
Author: ksjogo <jogo@kronberger-spiele.de>
Date:   Thu Mar 30 13:32:58 2017 +0200

    update for xcode 8.3

commit 57d8ff044cd6320d8ebacacf06455569b4aac27d
Author: Ole André Vadla Ravnås <oleavr@gmail.com>
Date:   Wed Mar 15 01:43:11 2017 +0100

    Simplify iOS trampoline table allocation
    
    By using VM_FLAGS_OVERWRITE there is no need for speculatively
    allocating on a page we just deallocated. This approach eliminates the
    race-condition and gets rid of the retry logic.

commit 7f558a9ba4e74edf54a3e95e983e8a59ddb0cc7c
Author: ksjogo <jogo@kronberger-spiele.de>
Date:   Mon Jul 25 01:18:30 2016 +0200

    set ios deployment target to 7.0

commit e76fa94b6ef9a699ee9edeb85d1731d3bb7abd46
Author: ksjogo <jogo@kronberger-spiele.de>
Date:   Thu Jul 14 11:28:18 2016 +0200

    fix ltmain.sh in xcode builds

commit 22b2fd6f18eed7b32ea959f7f3e56ea09b9ac9bf
Author: ksjogo <jogo@kronberger-spiele.de>
Date:   Wed Jul 13 14:40:07 2016 +0200

    add valid architectures

commit 0040694505411785ec98e660fe81faad9630f515
Author: Johannes Goslar <johannes.goslar@kronberger-spiele.de>
Date:   Tue Jul 12 16:08:42 2016 +0200

    Update Xcodeproj
    
    Include all currently relevent files.
    Call autogen is build script.
    Fix compiler settings.
    Fix mach include.

commit b841ae70a05a5e11de1fca1b4551189db0895cf2
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 19 07:42:09 2017 -0400

    remove stray quote

commit a94c999ba0d51ed8ec88685233f5b1ae38e894ea
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 19 07:36:07 2017 -0400

    Handle fastcall declaration differently for some Microsoft compilers

commit 69963d39ab7d7f201b4597ed7a24cf438e0a34bf
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 19 07:33:39 2017 -0400

    We don't support 32-bit builds with the Microsoft toolchain

commit 073bc9d50c1ce753735944e4228d9a401e964306
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 19 07:25:24 2017 -0400

    Enable appveyor ci support

commit a0b14eea2baf9f18c0d29bc5ce4495422381f917
Merge: fa5a0fe 1e0d107
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Mar 17 09:20:40 2017 -0400

    Merge pull request #291 from ramon-garcia/visual-studio-build
    
    Build with Visual C++ (64 bits)

commit fa5a0fe2c6da906cc7c114c8002e5c7092c4dbee
Merge: 5b91bbd bfab429
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Mar 16 07:50:07 2017 -0400

    Merge pull request #238 from KubaKaszycki/master
    
    Update README with a new port

commit 5b91bbd388213ec19044a392c291505e2c0674b9
Merge: d754c51 982b89c
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Mar 16 00:40:58 2017 -0400

    Merge pull request #288 from yan12125/std-includedir
    
    Install public headers in the standard path

commit d754c510f1dd03dc8c2cd7b50bb2a1668715c5cd
Merge: ebe7f44 41185b5
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Mar 16 00:39:07 2017 -0400

    Merge pull request #299 from matijaskala/patch-1
    
    detect other x32 hosts

commit ebe7f447abcfbf1a16dbfca26538fff03faf7c6b
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Mar 16 00:36:10 2017 -0400

    Remove osx testing.  gcc was symlinked to clang. dejagnu c++ tests fail with clang.

commit c9c2aa24611ec996f45a495f24d690688f3ffed6
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Mar 15 09:58:39 2017 -0400

    Revert previous two changes.  clang/MacOS problem can only be solved within dejagnu.

commit 5a8fca94059fbf14ac7352ce487c9250cdd67c63
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Mar 15 09:52:39 2017 -0400

    Fix typo

commit 5b10a0198188d43fc07c271bc29ff1033e2ac9d3
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Mar 15 09:34:01 2017 -0400

    Work around dejagnu/clang problems

commit b6751258072fadadd487a6adf4962bf22b44746d
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Mar 15 08:54:52 2017 -0400

    Require sudo for installing packages

commit 41185b565fe17a8f107642f480849ef369ad0baa
Author: Matija Skala <mskala@gmx.com>
Date:   Wed Mar 15 12:50:41 2017 +0100

    detect other x32 hosts
    
    primarily x86_64-pc-linux-muslx32
    while at it, add x86_64-x32-pc-linux-{gnu,musl} as well

commit 6e2e041b6df6a3c3a5ca8a750dedbbd465e5ca97
Merge: dabbd14 d42ce7b
Author: Richard Henderson <rth@twiddle.net>
Date:   Tue Mar 14 19:37:45 2017 -0700

    Merge pull request #297 from frida/fix/error-path
    
    Fix error path so mutex is unlocked before returning

commit 5e4fcdccb3a841f2daaa5834f726eaeb42950511
Author: Ole André Vadla Ravnås <oleavr@gmail.com>
Date:   Wed Mar 15 01:43:11 2017 +0100

    Simplify iOS trampoline table allocation
    
    By using VM_FLAGS_OVERWRITE there is no need for speculatively
    allocating on a page we just deallocated. This approach eliminates the
    race-condition and gets rid of the retry logic.

commit d42ce7b95c6d5cba7d976cc0c8c85f7645fa6b8f
Author: Ole André Vadla Ravnås <oleavr@gmail.com>
Date:   Wed Mar 15 01:23:40 2017 +0100

    Fix error path so mutex is unlocked before returning
    
    In the unusual case where ffi_trampoline_table_alloc() fails.

commit dabbd145665ffca6fa676eba551f12107cd81131
Merge: 60e4250 6caabd1
Author: Tom Tromey <tom@tromey.com>
Date:   Mon Feb 27 21:10:00 2017 -0700

    Merge pull request #295 from terrillmoore/patch-1
    
    Correct typos in libffi.texi

commit 6caabd198ec24d090d85d7eca01150b44003c76b
Author: Terry Moore <tmm@mcci.com>
Date:   Sun Feb 26 15:06:53 2017 -0500

    Correct typos in libffi.texi
    
    One "it's" should be "its", and one "is" should be "in".

commit 1e0d107b4b237edd11ca3209a9cf59786f752fe5
Author: Ramón García Fernández <ramon.garcia.f@gmail.com>
Date:   Sun Jan 8 20:12:59 2017 +0100

    Modify configure.host to detect compilation with Microsoft Visual C++ and use assembly with Intel syntax in that case

commit 982b89c01aca99c7bc229914fc1521f96930919b
Author: Yen Chi Hsuan <yan12125@gmail.com>
Date:   Sun Nov 13 19:17:19 2016 +0800

    Install public headers in the standard path

commit 60e4250a77eb3fde500bfd68ec40519fe34b21bd
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Sep 4 09:34:18 2016 -0400

    make executable

commit c3caf38895252b82febb76c6bb323c67a4e01929
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Sep 4 09:21:18 2016 -0400

    Update travis to test linux 32/64 and osx with a mix of gcc and clang

commit c5b408ee78d097a495ea12467cf082f8008c8e17
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Sep 4 09:17:46 2016 -0400

    xfail the unwindtest for osx as per issue #279

commit 256ce51c408766d23b2707cc79b97f673750b3b9
Merge: 2ded2a4 52a11f6
Author: Richard Henderson <rth@twiddle.net>
Date:   Thu Sep 1 13:54:51 2016 -0700

    Merge pull request #273 from wbx-github/master
    
    m68k: support ISA-A Coldfire CPUs

commit 2ded2a4f494165c93293afc14ab0be1243cf8c49
Merge: 408c9c7 e247b56
Author: Richard Henderson <rth@twiddle.net>
Date:   Thu Sep 1 13:30:45 2016 -0700

    Merge pull request #272 from yousong/mips64-soft-float
    
    Mips64 soft float

commit 408c9c7d5a4cb323c77499b1643858f4bfaf4ca7
Merge: 06d7c51 b545ff8
Author: Tom Tromey <tom@tromey.com>
Date:   Tue Aug 23 11:32:17 2016 -0600

    Merge pull request #274 from dr-hannibal/ykolerov-unused
    
    ARC: Remove unused variable

commit b545ff81f58233284cd6fca97a470aa3218c23e6
Author: Yuriy Kolerov <yuriy.kolerov@synopsys.com>
Date:   Tue Aug 23 20:23:37 2016 +0300

    ARC: Remove unused variable
    
    Signed-off-by: Yuriy Kolerov <yuriy.kolerov@synopsys.com>

commit 52a11f6d9152a56aa1fb6d04eb40fd76f4cce5ff
Author: Waldemar Brodkorb <wbx@uclibc-ng.org>
Date:   Sat Aug 20 00:52:19 2016 +0200

    m68k: support ISA-A Coldfire CPUs
    
    Fix compilation for m68k/coldfire CPUs like mcf5208.
    
    Signed-off-by: Thorsten Glaser <tg@mirbsd.de>
    Signed-off-by: Waldemar Brodkorb <wbx@uclibc-ng.org>

commit e247b562ac85565dfac33e676e2915489af04183
Author: Yousong Zhou <yszhou4tech@gmail.com>
Date:   Mon Aug 15 17:34:37 2016 +0800

    doc: fix typo
    
    Name of last argument to ffi_get_struct_offsets is `offsets`, not `sizes`
    
    Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>

commit 7a0d2c83bf2b0422e2d0ed297f847fc1eeb88bb3
Author: Yousong Zhou <yszhou4tech@gmail.com>
Date:   Mon Aug 15 15:00:13 2016 +0800

    mips: fix MIPS softfloat build issue
    
    The patch for o32.S is taken from OpenWrt packages repo 3a7a4bf "libffi:
    fix MIPS softfloat build issue with current binutils"
    
    Signed-off-by: Felix Fietkau <nbd@openwrt.org>
    Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>

commit 06d7c5190e910356d4212d2a79056df8b70fd27e
Merge: aa7ed78 301166b
Author: Tom Tromey <tom@tromey.com>
Date:   Wed Aug 10 15:06:16 2016 -0600

    Merge pull request #269 from frida/fix/aarch64-variadic-closures-on-ios
    
    aarch64: Fix handling of variadic closures on iOS

commit aa7ed78c0e0d3fc4daa6a86c35ecbb7c43b5d067
Merge: 1daa787 4da814b
Author: Tom Tromey <tom@tromey.com>
Date:   Wed Aug 10 15:03:37 2016 -0600

    Merge pull request #268 from frida/fix/aarch64-large-aggregates
    
    aarch64: Fix handling of aggregates larger than 16 bytes

commit 4da814b18a1bf1d2013d988e37485e568d6117d1
Author: Ole André Vadla Ravnås <oleavr@gmail.com>
Date:   Wed Aug 10 22:48:09 2016 +0200

    aarch64: Fix handling of aggregates larger than 16 bytes
    
    Instead of allocating stack space for a pointer we would allocate stack
    space for the actual aggregate size.

commit 1daa78799942c83c905f8d7c5439952e9ffec3bc
Merge: f03ba20 5e9ac7e
Author: Tom Tromey <tom@tromey.com>
Date:   Wed Aug 10 14:31:09 2016 -0600

    Merge pull request #270 from frida/fix/aarch64-warnings
    
    Fix aarch64 warnings

commit ed8488345eaae41c161ab741b0c44299ee99dc6c
Author: s1341 <github@shmarya.net>
Date:   Wed Aug 10 14:57:22 2016 +0200

    arm: Fix cache flushing on QNX
    
    Use `msync()` directly as `__clear_cache()` is broken in the
    qnx650_gcc4.8.3 toolchain.

commit 5e9ac7e252dbb0b7025027c1b6e1a4f3ec48943f
Author: Ole André Vadla Ravnås <oleavr@gmail.com>
Date:   Wed Aug 10 15:22:19 2016 +0200

    aarch64: Fix warning about unused function on iOS

commit 4d1f11f6a9effce05ba51578b142827834d1f699
Author: Ole André Vadla Ravnås <oleavr@gmail.com>
Date:   Wed Aug 10 15:21:42 2016 +0200

    aarch64: Fix operand size warning reported by Clang

commit 301166b11e913f85d09f67af94264268811f23a9
Author: Ole André Vadla Ravnås <oleavr@gmail.com>
Date:   Wed Aug 10 15:59:56 2016 +0200

    aarch64: Fix handling of variadic closures on iOS

commit f03ba2032850545dc6869bb495170a8c6cbf849d
Merge: 40e4063 ef8be84
Author: Tom Tromey <tom@tromey.com>
Date:   Tue Aug 2 10:23:25 2016 -0600

    Merge pull request #266 from dr-hannibal/arc-pthread
    
    Make testing easier outside of build directory and especially for ARC

commit ef8be84de5f9e611add396efe908b772eb1cae1d
Author: Yuriy Kolerov <yuriy.kolerov@synopsys.com>
Date:   Fri Jul 29 21:01:38 2016 +0300

    Do not use fabsl() in float2.c test
    
    Some targets may support long double variables but in the same
    time may lack support of long double functions like fabsl().
    
    Signed-off-by: Yuriy Kolerov <yuriy.kolerov@synopsys.com>

commit f3201733d54bf26ac40c432f4305499dd3f20215
Author: Yuriy Kolerov <yuriy.kolerov@synopsys.com>
Date:   Fri Jul 29 19:18:41 2016 +0300

    Fix output expectations in cls_dbls_struct.c test
    
    This test with invalid output expectations may fail on some targets
    (e.g. ARC processors).
    
    Signed-off-by: Yuriy Kolerov <yuriy.kolerov@synopsys.com>

commit f74ea2dc7994b4867f7ab45169e1b2422072cc92
Author: Yuriy Kolerov <yuriy.kolerov@synopsys.com>
Date:   Thu Jul 28 20:57:09 2016 +0300

    Allow setting an arbitary value for blddirffi in testsuite
    
    It is useful when tests are executed not from build directory. So
    the path of the build directory may be passed through site.exp or
    runtest.
    
    Signed-off-by: Yuriy Kolerov <yuriy.kolerov@synopsys.com>

commit 31362d785ed1db52516dfe02ebe8b163c53d29d0
Author: Yuriy Kolerov <yuriy.kolerov@synopsys.com>
Date:   Thu Jul 28 18:48:23 2016 +0300

    ARC: Link tests with pthread library
    
    Signed-off-by: Yuriy Kolerov <yuriy.kolerov@synopsys.com>

commit 40e4063ab4449c644bc106298805fa8c6cfadbd4
Merge: c0829e6 cf4b2a5
Author: Richard Henderson <rth@twiddle.net>
Date:   Thu Jul 7 23:11:38 2016 -0700

    Merge pull request #261 from tromey/fix-260
    
    Don't dereference "ecif" before NULL check

commit cf4b2a50413ecb8931eb1a94437497694f189c47
Author: Tom Tromey <tom@tromey.com>
Date:   Fri Jun 17 10:09:44 2016 +0100

    Don't dereference "ecif" before NULL check
    
    Fixes #260

commit c0829e62841100c308cc37ddd6537ca69e856de7
Merge: 96d9bf4 794a54d
Author: Richard Henderson <rth@twiddle.net>
Date:   Sun Jun 5 15:05:21 2016 -0700

    Merge pull request #259 from rth7680/master
    
    Mark win64.S with GNU-stack note

commit 794a54d4a603639adf1a79d5b5bc15da437457e2
Author: Richard Henderson <rth@twiddle.net>
Date:   Sun Jun 5 14:57:00 2016 -0700

    Mark win64.S with GNU-stack note

commit 96d9bf4b5517bc49c0129e8cfdee43098d3771a2
Merge: 02089a1 52fbd12
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Jun 3 23:04:56 2016 -0700

    Merge pull request #253 from iains/darwin-build
    
    Some Darwin build fixes

commit 52fbd12dca1bddf0b135a24e7136f10af79a06bd
Author: Iain Sandoe <iain@codesourcery.com>
Date:   Thu May 26 09:00:00 2016 +0100

    [Darwin-ppc, build] Fixes for clang build.
    
    clang is experimental on powerpc-darwin, but the changes are appropriate to cctools as as well.
    
    Use the 'official' simplified cmpwi insn, rather than the implied one accepted by cctools.
    Do not re-use a set value.

commit 92810b4bc101fccead2234b7385d4fa5e7a3e56a
Author: Iain Sandoe <iain@codesourcery.com>
Date:   Thu May 26 08:56:51 2016 +0100

    [Darwin-x86, build] Fix up label prefixes, remove .purgem
    
    Darwin uses a label prefix of _.
    cctools assembler will not accept .purgem as a directive.

commit 30b3440cfd378dc67111b1380f2654334d048659
Author: Iain Sandoe <iain@codesourcery.com>
Date:   Thu May 26 08:55:04 2016 +0100

    [Darwin, configure] Allow configure to work for <arch>-*-darwin.
    
    The exec configury is appropriate for all current targets (including using older tools on them).

commit 02089a1b5cf3aa1535172c62add454a2e9375066
Merge: 5d0365c c884551
Author: Tom Tromey <tom@tromey.com>
Date:   Mon May 23 09:58:51 2016 -0600

    Merge pull request #237 from tschwinge/libffi_feature_test
    
    Simplify/fix libffi_feature_test

commit 5d0365c605c472f40d1195cf7ba04ae08e360cb7
Merge: 584a140 74b3f52
Author: Richard Henderson <rth@twiddle.net>
Date:   Thu May 19 09:35:38 2016 -0700

    Merge pull request #251 from berkerpeksag/delete-test-define
    
    Remove unused FFI_CLOSURE_TEST

commit 74b3f5201432c37e40e24386fa193c838596cec8
Author: Berker Peksag <berker.peksag@gmail.com>
Date:   Thu May 19 18:05:36 2016 +0300

    Remove unused FFI_CLOSURE_TEST
    
    It was here since the first commit c6dddbd (warning: huge diff) and
    it wasn't defined by the configure script. It was probably used
    manually during development.

commit 584a140e7558dff6e4ed4009f39d11dd5e3db0ae
Merge: c617754 b3496de
Author: Tom Tromey <tom@tromey.com>
Date:   Thu May 19 06:36:38 2016 -0600

    Merge pull request #248 from berkerpeksag/patch-1
    
    Delete empty env in .travis.yml

commit b3496dedbbad6c1f4e5bf4cc100e76b86f3c801e
Author: Berker Peksag <berker.peksag@gmail.com>
Date:   Thu May 19 10:53:07 2016 +0300

    Delete empty env in .travis.yml

commit c61775497e7bdfc892d865c2eb15415d2da7493b
Merge: 9edaa69 33d9a31
Author: Richard Henderson <rth@twiddle.net>
Date:   Wed May 18 11:10:33 2016 -0700

    Merge pull request #247 from rth7680/symver
    
    Add parent to symbol version LIBFFI_BASE_7.1

commit 33d9a31d34cfba63e1294978114be1bddd2de3fd
Author: Richard Henderson <rth@twiddle.net>
Date:   Wed May 18 11:01:55 2016 -0700

    Add parent to symbol version LIBFFI_BASE_7.1

commit 9edaa695c54daaf58d62e84032d30d33b7484fa8
Merge: 0969a1c 8a0a4e2
Author: Richard Henderson <rth@twiddle.net>
Date:   Wed May 18 10:56:19 2016 -0700

    Merge pull request #230 from rth7680/symver
    
    Use ELF symbol versioning

commit 0969a1c1b339f845202fa7507b70d193220ceb01
Merge: 571b1ca 4a677a4
Author: Tom Tromey <tom@tromey.com>
Date:   Wed May 18 10:09:28 2016 -0600

    Merge pull request #232 from berkerpeksag/signcompare
    
    Fix -Wsign-compare warnings in x86/ffi64.c

commit 571b1ca6277dbafc1f340a59ea1c5ee4ddb11c94
Merge: 069d2e4 1e82e1c
Author: Tom Tromey <tom@tromey.com>
Date:   Wed May 18 10:08:59 2016 -0600

    Merge pull request #233 from berkerpeksag/mremap
    
    Define _GNU_SOURCE on Linux for mremap()

commit 069d2e4e16c5570adec9249d642f2a2ae0ffaa1c
Merge: a44a5b8 1b4f5ee
Author: Tom Tromey <tom@tromey.com>
Date:   Wed May 18 10:07:31 2016 -0600

    Merge pull request #246 from berkerpeksag/update-github-links
    
    Update project URLs to use libffi/libffi

commit 1b4f5ee6a4989d7eda7766c5864908c389586c6f
Author: Berker Peksag <berker.peksag@gmail.com>
Date:   Wed May 18 11:12:58 2016 +0300

    Update project URLs to use libffi/libffi

commit 1e82e1cda43dacd8b6ab2d9ac4db33523d86f5dc
Author: Berker Peksag <berker.peksag@gmail.com>
Date:   Mon Mar 7 18:38:10 2016 +0200

    Define _GNU_SOURCE on Linux for mremap()
    
    This was committed to CPython's libffi copy in
    https://bugs.python.org/issue10309
    
    mremap() documentation says _GNU_SOURCE needs to
    be defined in order to use mremap(): see the
    synopsis section at http://linux.die.net/man/2/mremap
    
    Original commit: https://hg.python.org/cpython/rev/9986fff720a2
    
    Original patch was written by Hallvard B Furuseth.

commit 4a677a425c18eda4bc5357b2485da57f133f908d
Author: Berker Peksag <berker.peksag@gmail.com>
Date:   Sat Mar 5 09:58:38 2016 +0200

    Fix -Wsign-compare warnings in x86/ffi64.c
    
    This was originally reported on the Python tracker:
    
      httpa://bugs.python.org/issue23958
    
    The original patch was written by Steve R. Hastings.
    
    I've updated it to current master of libffi.

commit a44a5b863aaae98041e11aa3256907bf912ee4d6
Merge: 9443eae 2627fc9
Author: Tom Tromey <tom@tromey.com>
Date:   Tue May 17 17:07:27 2016 -0600

    Merge pull request #234 from berkerpeksag/disable-docs
    
    Add a note about the --disable-docs switch

commit 9443eaeda867cfdeae92b10bee3cc0506892a4c5
Merge: 14be9a1 e169ba2
Author: Tom Tromey <tom@tromey.com>
Date:   Tue May 17 17:04:50 2016 -0600

    Merge pull request #242 from somasis/master
    
    Fix usage on musl libc

commit 8a0a4e25ef99f4ec98761f2fc075c2e8409f171b
Author: Richard Henderson <rth@twiddle.net>
Date:   Wed May 4 07:33:41 2016 -1000

    Update symbol versioning for ffi_get_struct_offsets
    
    Given that the original symbol versioning patch has shipped
    with gcc-6, it would be kind to keep that as a valid base ABI
    and make subsequent changes to version 7.1.

commit c02c3414440e816aa13a2fe8446484173d3edb0e
Author: Richard Henderson <rth@twiddle.net>
Date:   Thu Mar 3 13:51:44 2016 -0800

    Use ELF symbol versioning
    
    At the same time, we must bump the (major) ABI version.  This needed to be
    done anyway due to ABI breakage in the AArch64 port (see 12cf89ee and the
    corresponding GCC PR70024).

commit 14be9a1d0713deb97edb91fe9800afe971a001d5
Merge: 1cea273 b50eabf
Author: Richard Henderson <rth@twiddle.net>
Date:   Wed May 4 06:45:05 2016 -1000

    Merge pull request #245 from rth7680/tromey-ffi-prep-cif-core-is-private
    
    A rebase of #219

commit b50eabf48927ccaf0184c6224992bbb0a125e969
Author: Tom Tromey <tom@tromey.com>
Date:   Mon Feb 22 16:00:51 2016 -0700

    minor comment cleanup
    
    This patch minor cleans up ffi.h.in comments in a minor way.  It fixes
    some typos and capitalizations, adds some periods, and reformats some
    comments to a more GNU-ish style.  It also fixes up some stale
    documentation.

commit 6c07077a61fd0dc5ac11759ea1b4345acf486f3c
Author: Tom Tromey <tom@tromey.com>
Date:   Sun Feb 21 20:08:21 2016 -0700

    Change ffi.h.in so that braces match
    
    This is a tiny refactoring to make it so brace-matching works in
    Emacs.

commit 2fbc0369b89a7e6b089e6384b98dba904ec1cf8b
Author: Tom Tromey <tom@tromey.com>
Date:   Thu Nov 19 16:38:35 2015 -0700

    move ffi_prep_cif_core to ffi_common.h

commit 1cea273758ad862bdc2862af864e4ef5b42f31ae
Merge: 48bfae1 6aafb56
Author: Tom Tromey <tom@tromey.com>
Date:   Tue May 3 08:23:51 2016 -0600

    Merge pull request #231 from berkerpeksag/simplfy-oserror
    
    Simplify error handling in mkdir_p()

commit 48bfae1f37551b7fc894e6a0ea3b98968d2b5c9f
Merge: 6d87110 d76975d
Author: Richard Henderson <rth@twiddle.net>
Date:   Mon May 2 20:58:57 2016 -1000

    Merge pull request #236 from andreas-schwab/master
    
    Define FFI_SIZEOF_JAVA_RAW for aarch64 ILP32

commit 6d8711057bc3a3befa37eed6765231ea5d244078
Merge: 9de24a3 e5843a3
Author: Richard Henderson <rth@twiddle.net>
Date:   Sun May 1 11:02:40 2016 -1000

    Merge pull request #241 from rth7680/fix-win64
    
    Fix win64 abi calling from unix64

commit e169ba2b83c780058fe626856cfdb5903a85cb97
Author: Kylie McClain <somasis@exherbo.org>
Date:   Fri Apr 29 21:04:07 2016 -0400

    Fix usage on musl libc
    
    A gcc compiled on musl does not define __gnu_linux__, it defines __linux__.
    Only on glibc does __gnu_linux__ get defined, but both define __linux__, so
    we should check for that instead.
    
    With this patch, libffi works perfectly, and passes its testsuite entirely
    on musl libc systems.

commit e5843a3a09976f9d8fa77671e9d6c188c890199d
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Apr 15 16:10:08 2016 -0700

    x86: Fix calling convention for ffi_closure_win64_inner
    
    Also enable testing for the cross-abi calls.

commit d06751979bf0e4c9caabf0bca531d74de8cb9152
Author: Richard Henderson <rth@twiddle.net>
Date:   Mon Mar 7 12:14:22 2016 -0500

    x86: Copy fix for clang .org from unix64.S
    
    Clang doesn't understand .org with symbolic operands.

commit bfab429ee479723cc65831a7e4327e2866036420
Author: Jakub Kaszycki <kaszycki@mail.com>
Date:   Fri Apr 1 21:42:41 2016 +0200

    Update README with a new port
    
    This is in fact not a NEW port. Apple Mac devices are generally x86-64 now, x86 rarely. If GCC exists for this CPU, it means that libffi has been built too.

commit c88455178151bea14b8561ab6830724c31af255e
Author: Thomas Schwinge <thomas@codesourcery.com>
Date:   Thu Feb 25 20:10:18 2016 +0100

    Simplify/fix libffi_feature_test
    
    As detailed in
    <http://news.gmane.org/find-root.php?message_id=%3C87wppswqqt.fsf%40kepler.schwinge.homeip.net%3E>,
    the original code (originally added in commit
    f1301a54bb80e6ae23f7687c68f36875dae69134 as part of pull request #145) does not
    work (at least not for me, in the GCC environment).

commit d76975dbd2854beca7acbca946c4cbccf9bf7cee
Author: Andreas Schwab <schwab@suse.de>
Date:   Wed Mar 16 12:23:07 2016 +0100

    Define FFI_SIZEOF_JAVA_RAW for aarch64 ILP32
    
    Like x32, aarch64 ILP32 needs to define FFI_SIZEOF_JAVA_RAW.  This fixes
    the java interpreter.

commit 9de24a3ff31c7446de29c1adcd9276fd7ba93897
Merge: ee71806 38a4d72
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Mar 14 13:54:53 2016 -0400

    Merge pull request #212 from tromey/struct-layout
    
    add ffi_get_struct_offsets

commit 2627fc98e86e906fd7c9bc16bf345b91ee26d2ba
Author: Berker Peksag <berker.peksag@gmail.com>
Date:   Mon Mar 7 18:43:03 2016 +0200

    Add a note about the --disable-docs switch
    
    Closes #204

commit 6aafb5654d6741927276efff1af72a5b3614da39
Author: Berker Peksag <berker.peksag@gmail.com>
Date:   Sat Mar 5 08:30:31 2016 +0200

    Simplify error handling in mkdir_p()

commit ee718066f763b65d1888f9cc7155d3a1880f80e9
Merge: f2f234a e59fb55
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Feb 22 20:15:40 2016 -0500

    Merge pull request #227 from tromey/fix-documentation-build
    
    Fix documentation build

commit 38a4d72c95936d27cba1ac6e84e3094ffdfaa77c
Author: Tom Tromey <tom@tromey.com>
Date:   Tue Nov 17 21:18:20 2015 -0700

    add ffi_get_struct_offsets

commit e59fb55e09fb8aa846c820a802a03fed408d05a6
Author: Tom Tromey <tom@tromey.com>
Date:   Mon Feb 22 15:51:27 2016 -0700

    remove and ignore texinfo.tex
    
    This file is provided by Automake

commit 6dd5fd5a643c50aff3303ba2add3b6cc7588df78
Author: Tom Tromey <tom@tromey.com>
Date:   Mon Feb 22 15:34:39 2016 -0700

    fix documentation building
    
    An earlier patch added --disable-docs, but went too far, making it
    impossible to build the docs.
    
    It turns out that Automake seemingly has a bug preventing the
    conditional build of an info file.  So, this patch works around the
    bug by putting the info_TEXINFOS rule into a new doc/Makefile.am.
    
    Tested by building with and without --disable-docs and looking for the
    existence of doc/libffi.info.

commit f2f234aef203a5e836b83cb772f9473f7ea0d5ce
Merge: 49b95ed fa7a257
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Feb 20 06:50:29 2016 -0500

    Merge pull request #190 from havardgraff/master
    
    Add configure-option to disable building docs

commit 49b95edafd712ce27e08b1bb4be2987f14c54ca3
Merge: 415723b 43fc5bc
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Feb 20 06:49:40 2016 -0500

    Merge pull request #194 from amodra/master
    
    Correct powerpc sysv stack argument accounting

commit 415723b40ba76f4a9df9b709db1cde0c65162072
Merge: 7c27fcb 1f6b5a9
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Feb 20 06:49:19 2016 -0500

    Merge pull request #104 from joshtriplett/efi64
    
    Support the Windows/EFI calling convention on all x86-64 targets

commit 7c27fcbe09534d261b4098467a3ce258daec2807
Merge: 69143d0 e061243
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Feb 20 06:45:00 2016 -0500

    Merge pull request #199 from Pan7/master
    
    Fix configuring msvc compiler

commit 69143d06c6276d09790a4e34f2eb6d37528c08c6
Merge: 755f1e6 505346e
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Feb 20 06:44:28 2016 -0500

    Merge pull request #197 from foxsen/mips_go_closure
    
    Mips go closure support

commit 755f1e642d97892cb54358d65e06b60d1d6b72a4
Merge: 183ee6a 4cdedc2
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Feb 20 06:43:48 2016 -0500

    Merge pull request #193 from rth7680/fix-70
    
    Test case from issue #70

commit 183ee6a6729db8f3ee0b1532d7bd54a6ef305443
Merge: 0bb71b5 877ea9b
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Feb 20 06:43:28 2016 -0500

    Merge pull request #206 from edolnx/master
    
    Add configure flag to disable multi-os-directory support

commit 0bb71b52f5a60643ad55f801f1c652855b0e5cc5
Merge: 296a283 8bec5ca
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Feb 20 06:41:10 2016 -0500

    Merge pull request #211 from tromey/move-prep-types-out-of-ffi.h
    
    ffi_prep_types is internal-only

commit 296a283a46057a6a643f1f64534324af34b7ed19
Merge: e7c713a 4805bf9
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Feb 20 06:40:21 2016 -0500

    Merge pull request #213 from tromey/remove-FFI_TYPE
    
    remove FFI_TYPE typedef

commit e7c713a0b64c425b51f3d9437a8db7ca497e6c31
Merge: 79666ab f45e9e3
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Feb 20 06:40:03 2016 -0500

    Merge pull request #214 from tromey/document-enum-support
    
    document (lack of) enum handling in libffi

commit 79666abca87ac67d2d05b477a3ba71ec18b8af0c
Merge: 20c7c31 89b7605
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Feb 20 06:38:40 2016 -0500

    Merge pull request #205 from filbranden/tool_opts
    
    Fix dejagnu test support for --tool_opts

commit 20c7c31ca04350670012b28756d4ebc9e7b67a68
Merge: 6ba2a49 9c14cbf
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Feb 20 06:38:01 2016 -0500

    Merge pull request #225 from ehsan/safeseh
    
    Don't clobber safeseh for msvcc.sh -clang-cl in 32-bit mode

commit 89b760503ed017233c98531908dfe8d8affab65e
Author: Filipe Brandenburger <filbranden@google.com>
Date:   Mon Oct 19 15:33:23 2015 -0700

    Fix dejagnu test support for --tool_opts
    
    Right now it concatenates it with the existing options and then appends
    it to that list, fix it to simply append it as is, same as it is done
    with the other variables.
    
    Tested by running the following command which includes gcc options:
      $ make check RUNTESTFLAGS="--tool_opts '-Werror'"
    
    Without this patch, all the tests fail. With it, the test succeed.
    Inspecting the logs shows that -Werror was indeed used when compiling
    the test sources.

commit 9c14cbfc7ff49c2ceb9b65c548ddaced607f0785
Author: Ehsan Akhgari <ehsan@mozilla.com>
Date:   Thu Jan 28 16:57:18 2016 -0500

    Don't clobber safeseh for msvcc.sh -clang-cl in 32-bit mode
    
    The commit fb25cd0 went a bit too far and removed safeseh
    when -clang-cl was passed, but that's only needed in x86-64
    which is already handled by the -m64 flag.
    
    I discovered this when building Firefox x86 with clang-cl.

commit 6ba2a49e226b859ddde9a37c34973cf85380c525
Merge: 8005600 6a3a6ac
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Jan 2 20:03:41 2016 -0500

    Merge pull request #222 from freakboy3742/t181
    
    Fixed #181 -- Corrected problems with ARMv7 build under iOS.

commit 8005600a920f43d89ace7ef3598057392da726e1
Merge: 70594f7 5e2b18a
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Jan 2 16:44:29 2016 -0500

    Merge pull request #224 from plicease/travis
    
    update apt-get in travis

commit 5e2b18a65d3f366b2fb02ee27321095c4b5f17ac
Author: Graham Ollis <plicease@cpan.org>
Date:   Sat Jan 2 07:56:05 2016 -0500

    update apt-get in travis

commit 6a3a6acd9fdbdac6f9f9294732b9627895b77715
Merge: bc4fc07 70594f7
Author: Russell Keith-Magee <russell@keith-magee.com>
Date:   Mon Dec 21 00:37:37 2015 +0800

    Merge branch 'master' into t181

commit bc4fc07aa58df6d7fa90b57d305d58eef96a0416
Author: Russell Keith-Magee <russell@keith-magee.com>
Date:   Mon Dec 21 00:37:06 2015 +0800

    Fixed #181 -- Corrected problems with ARMv7 build under iOS.
    
    Based on a patch from @fealebenpae, with input from @SolaWing and @rth7680,
    and testing from @superdump.

commit 70594f7f8d7410be47ba9a80a566175d937ab626
Merge: 88deacd 6affad7
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Dec 18 10:24:38 2015 -0500

    Merge pull request #221 from tromey/document-closure-ffi_arg
    
    Document closure ffi arg

commit 6affad79111c45982fd29637a46bc756abb128a3
Author: Tom Tromey <tom@tromey.com>
Date:   Thu Dec 17 16:58:10 2015 -0700

    correctly document closure return promotion

commit 8a7cdeb0412f9ef8bbe0a7833d662dbec40b472f
Author: Tom Tromey <tom@tromey.com>
Date:   Thu Dec 17 16:51:32 2015 -0700

    fix formatting of ffi_prep_closure_loc arguments

commit f45e9e35700d7c547ba33b02c4186e746dea204a
Author: Tom Tromey <tom@tromey.com>
Date:   Thu Nov 19 15:21:14 2015 -0700

    document (lack of) enum handling in libffi

commit 4805bf9ccdc176687526e9e7fca0db763cef42fb
Author: Tom Tromey <tom@tromey.com>
Date:   Thu Nov 19 14:17:42 2015 -0700

    remove FFI_TYPE typedef

commit 8bec5ca26a9977e6c05d6bfa1bbbc7f6f99af4e7
Author: Tom Tromey <tom@tromey.com>
Date:   Wed Nov 11 21:34:43 2015 -0700

    ffi_prep_types is internal-only

commit 88deacdd4220b66805b6ad10abd61fa3640afb67
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Nov 15 08:39:17 2015 -0500

    speling fix

commit 5973dca595f8595a40709f645e74b06990975db3
Merge: 2a988c4 473bcbc
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Nov 15 08:36:48 2015 -0500

    Merge pull request #209 from tromey/documentation-updates
    
    documentation fixes

commit 2a988c4455d3926c59997b68f7510be63e10c841
Merge: e9de7e3 ff33ddd
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Nov 15 08:33:46 2015 -0500

    Merge pull request #207 from tromey/deprecate-ffi-prep-closure
    
    mark ffi_prep_closure as deprecated

commit 473bcbcad32e9e320a7a5c111cefd0d8ad570245
Author: Tom Tromey <tom@tromey.com>
Date:   Sat Nov 7 12:01:06 2015 -0700

    documentation fixes
    
    Fixes #78.  Documentation for #33 and #35, but no fix.

commit ff33ddd1abe72b6d02d2769c0379b06eb7dbb931
Author: Tom Tromey <tom@tromey.com>
Date:   Sat Nov 7 11:45:04 2015 -0700

    mark ffi_prep_closure as deprecated

commit 877ea9bf9ac2c98cb858c12f5a6aeeec13cf978f
Author: Carl Perry <caperry@edolnx.net>
Date:   Thu Oct 29 22:50:42 2015 -0500

    Add configure flag to disable multi-os-directory support
    
    In some environments, installing the library to GCC's
    multi-os-directory is not perferable. This patch adds a switch
    to configure "--disable-multi-os-directory" which will disable
    that check, typically falling back to ${libdir} unless
    cross-compiling.
    
    Original patch was written by Stewart Brodie, and was found at
    https://sourceware.org/ml/libffi-discuss/2013/msg00144.html
    
    I've just updated it to work with the current version.

commit 4cdedc279f96aefda24277184594c0ddd56d3402
Author: Richard Henderson <rth@twiddle.net>
Date:   Sat Jul 25 14:29:15 2015 -0700

    Tidy call.exp test collection
    
    Commit c952a92e20aa6013d8202d0b3fa1d87838c83054 moved all of
    the complex tests to libffi.complex, but failed to remove the
    anti-globbing from libffi.call.

commit 609db2fbe41a56c1a8cd5653d248f08b88ea803f
Author: Richard Henderson <rth@twiddle.net>
Date:   Sat Jul 25 12:42:04 2015 -0700

    Test case from Issue #70

commit e9de7e35f2339598b16cbb375f9992643ed81209
Merge: d19b6cc 0ebde2d
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Oct 11 10:54:50 2015 -0400

    Merge pull request #202 from tromey/note-prep-cif-var-usage
    
    document that there must be ntotalargs types

commit d19b6cc78e956e7ffd48b39fd7c441c22e633ce2
Merge: 17ffc36 36f3fb9
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Oct 11 10:54:22 2015 -0400

    Merge pull request #201 from tromey/fix-texinfo-buglet
    
    Add missing "@" to @var{}

commit 0ebde2d24a3deb7b0cdf5cb1e625b55af2834fde
Author: Tom Tromey <tom@tromey.com>
Date:   Tue Oct 6 11:42:43 2015 -0600

    document that there must be ntotalargs types

commit 36f3fb91412a6f10bd2c6dde01f4d7afa1f2f2c0
Author: Tom Tromey <tom@tromey.com>
Date:   Mon Oct 5 10:20:05 2015 -0600

    Add missing "@" to @var{}

commit e061243958d63080956887e121d275533570f7cc
Author: Pan7 <panter@gmx.net>
Date:   Mon Sep 14 08:25:09 2015 +0200

    Fix configuring msvc compiler

commit 505346e18fe20eee7eb69a23a48f6951858c5267
Author: Zhang Fuxin <zhangfx@lemote.com>
Date:   Wed Aug 26 09:57:10 2015 +0800

    fix type error in unwind code

commit 5953c66bd7510b048b332b4e7450f3fb8d687f8b
Author: foxsen <2503799872@qq.com>
Date:   Thu Aug 20 20:28:13 2015 +0800

    add unwind infor for *go_closure;
    reorder the labels to make thing more clear

commit f0ecd5d40397d4616ba0bf3e2521da2663b5bd97
Author: Zhang Fuxin <zhangfx@lemote.com>
Date:   Tue Aug 11 12:47:36 2015 +0800

    fix O32 stack unwind code
    add missing 1: label

commit 6f0201c803a9a1f0f9b6fd226a42fb8daa223928
Author: foxsen <2503799872@qq.com>
Date:   Tue Aug 4 18:25:34 2015 +0800

    various fixes for go closure support. Now all n64 tests passed.

commit 697dd4e8a03625a9b1448aa696978d8dcc57d438
Author: foxsen <2503799872@qq.com>
Date:   Tue Aug 4 12:53:33 2015 +0800

    add support for go closure support on mips

commit 43fc5bca48715a522b34c1124589575063362a90
Author: Alan Modra <amodra@gmail.com>
Date:   Mon Aug 3 23:34:05 2015 +0930

    Correct powerpc sysv stack argument accounting
    
    ppc32 starts using the stack for integer arg passing when we run out
    of integer arg passing registers.  Similarly, we start using the stack
    for floating point args when we run out of floating point registers.
    The decision on where an integer arg goes does not depend on number of
    floating point args, nor does the decision on where a floating point
    arg goes depend on number of integer args.  Alignment of stack args
    also simply depends on number of stack args.
    
    This patch untangles the horrible mess we had, with intarg_count being
    wrongly used to count both integer args and stack words.
    
            * src/powerpc/ffi_sysv.c (ffi_prep_cif_sysv_core): Count fprs,
            gprs, and stack words separately.
            (ffi_prep_args_SYSV): Similarly.

commit 1f6b5a91f417ac77d2fe9b0b3eb66293db132e2e
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Jul 26 16:27:34 2015 -0700

    Support the WIN64/EFI64 calling convention on all X86_64 platforms
    
    Add a new calling convention FFI_EFI64, alias FFI_WIN64, on all X86_64
    platforms.  This allows libffi compiled on a 64-bit x86 platform to call
    EFI functions.
    
    Compile in ffiw64.c and win64.S on all X86_64 platforms.  When compiled
    for a platform other than X86_WIN64, ffiw64.c suffixes its functions
    with _efi64, to avoid conflict with the platform's actual
    implementations of those functions.

commit 6de51f3e04e496901ea1bd8f9b44f75c9f01b599
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Jul 26 16:23:55 2015 -0700

    src/x86/ffiw64.c: Don't assign a "char *" to an "unsigned char *"
    
    Declare a local variable to match the type of the struct field assigned
    to it, rather than adding unsigned to the type.  Fixes a -Wpointer-sign
    warning.

commit eaa59755fcbb692a8cb763c7f9f24a350aadbd30
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Jul 26 17:17:16 2015 -0700

    src/x86/win64.S: Handle name mangling and PIC
    
    Move the macros from unix64.S into a shared header asmnames.h and use
    them in win64.S too.

commit c8e82d9fbffd3eeaef0266a1aac64d7bd13ee9c3
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Jul 26 16:18:57 2015 -0700

    src/x86/win64.S: Support compiling on non-WIN64 platforms
    
    Non-WIN64 versions of the GNU assembler don't support the .seh_*
    directives for structured exception handling, so wrap them in a macro
    that compiles to nothing.
    
    Handle the registers used for the non-Windows x86-64 calling convention
    when on a non-Windows platform.  Distinguish between cases that should
    refer to the native argument registers (defined as arg0, arg1, arg2, and
    arg3) and cases that should always refer to the Windows argument
    registers.

commit fa7a257113e2cfc963a0be9dca5d7b4c73999dcc
Author: Havard Graff <havard.graff@gmail.com>
Date:   Tue May 12 10:45:13 2015 +0200

    Add configure-option to disable building docs

commit e3d2812ce43940aacae5bab2d0e965278cb1e7ea
Author: Russell Keith-Magee <russell@keith-magee.com>
Date:   Sat Apr 25 19:03:03 2015 +0800

    Modified arm/sysv.S to remove directives not allowed by clang.

commit 17ffc3655a531c116e9eb9cc933e50bb1e5c47f8
Merge: 173757c a5b3eaa
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 29 21:38:26 2015 -0400

    Merge pull request #185 from freakboy3742/t184
    
    Fixed #184 -- Corrected source file references in Darwin source generator tool.

commit 173757ce973a2f12ad36ac6cda593581b225f9e3
Merge: f5ec627 dd9e4c8
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 29 21:38:12 2015 -0400

    Merge pull request #186 from freakboy3742/gitignore
    
    Added generated source file to .gitignore.

commit dd9e4c8d46b65104a24a9858accd0936ca44b98f
Author: Russell Keith-Magee <russell@keith-magee.com>
Date:   Fri Mar 13 08:03:13 2015 +0800

    Added generated source file to .gitignore.

commit a5b3eaa279a2e54721d44eeefdfd1962cf63caaf
Author: Russell Keith-Magee <russell@keith-magee.com>
Date:   Fri Mar 13 07:59:11 2015 +0800

    Fixed #184 -- Corrected file references in Darwin source generator tool.

commit f5ec6279a4698a8752093247a500cf76096ff157
Merge: 06747d3 95df379
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Mar 4 13:58:04 2015 -0500

    Merge pull request #178 from rth7680/aa64-ilp32
    
    aarch64: Handle ILP32 ABI

commit 95df3791935d934d92b0c852af1e655285157b70
Author: Andrew Pinski <apinski@cavium.com>
Date:   Wed Feb 11 08:31:48 2015 -0800

    aarch64: Handle ILP32 ABI

commit 06747d318761884e70dfa433a9548219fd779d7d
Merge: db1b34b 6c53577
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Jan 29 07:22:23 2015 -0500

    Merge pull request #176 from 0-wiz-0/master
    
    Handle NetBSD/powerpc the same as FreeBSD and OpenBSD.

commit 6c5357757f188577fffcd2890ef7a0f53e77de20
Author: Thomas Klausner <wiz@NetBSD.org>
Date:   Thu Jan 29 12:32:28 2015 +0100

    Handle NetBSD/powerpc the same as FreeBSD and OpenBSD.
    
    Signed-off-by: Thomas Klausner <wiz@NetBSD.org>

commit db1b34b7e1f5e473d17557e454a29933dfecd1af
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jan 28 18:08:06 2015 -0500

    Remove incomplete sentence

commit 56036a6b58acb9e854719e315a0738f16e354c35
Merge: 035715b 2104b2a
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jan 28 18:03:57 2015 -0500

    Merge pull request #175 from rth7680/sparc
    
    sparc: Re-introduce hand-written unwind info

commit 035715b3330421806df36ec4ac7ccecc86458540
Merge: 31a6185 b0e9796
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jan 28 18:03:06 2015 -0500

    Merge pull request #174 from rth7680/fbsd
    
    configure: Run HAVE_AS_X86_PCREL for all X86 targets

commit 2104b2a4fc923b8d82647c3fbbd8a8ca20bb24c8
Author: Richard Henderson <rth@twiddle.net>
Date:   Mon Jan 26 12:43:57 2015 -0800

    sparc: Re-introduce hand-written unwind info
    
    Fixes the build with the Solaris assembler.

commit b0e9796344562ea8e1ef28e9b04db6be26ca29fb
Author: Richard Henderson <rth@twiddle.net>
Date:   Tue Jan 27 22:10:12 2015 -0800

    configure: Run HAVE_AS_X86_PCREL for all X86 targets

commit 31a618530737cc8f1666845f8e65a3c097f6d408
Merge: d6675c1 5363663
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jan 21 05:55:47 2015 -0500

    Merge pull request #170 from fealebenpae/aarch64-trampoline-table
    
    Support closures on ARM64 iOS

commit d6675c16cc2b5a0e32c4538e5a4f555c91e6bb56
Merge: a25a46a 3ac1610
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jan 21 05:53:21 2015 -0500

    Merge pull request #172 from rth7680/fixes
    
    x86: Fix cygwin32 build

commit 3ac1610aa33c887ea9b14935208943925714a33e
Author: Richard Henderson <rth@twiddle.net>
Date:   Mon Jan 19 20:48:40 2015 +0100

    x86: Fix cygwin32 build
    
    The section syntax is just that little bit different.

commit a25a46a7fe4f7ae27fbd6e08a2540678899914e9
Merge: 5cd411a 1ad0b17
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Jan 16 17:32:07 2015 -0500

    Merge pull request #171 from rth7680/fixes
    
    Fixes from mainline gcc

commit 1ad0b17177526be86736e245fbcc21eadaf7cb36
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Jan 16 13:30:05 2015 -0800

    sparc: Also mark the return address in unwind info

commit d68c8aed19d459a9fef0847f316dd9473ef263ad
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Jan 16 11:40:33 2015 -0800

    sparc: Solaris fixes, part 2
    
    /bin/as seems to only understand single-digit labels
    /bin/as knows nothing about .rept/.endr

commit b740ab7cc955fc2888325e6387207f34400a6c45
Author: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Date:   Fri Jan 16 11:32:23 2015 -0800

    sparc: Solaris fixes
    
    * /bin/as requires .type fn,#function instead of @function.
    * /bin/as doesn't support .macro/.endm.  I'm using preprocessor macros
      instead to implement E in src/sparc/v[89].S.

commit f1560b7bbeb57042a32dfde487c3d21bd9ef6a51
Author: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Date:   Fri Jan 16 11:31:37 2015 -0800

    x86: Solaris fixes
    
    * Solaris/x86 /bin/as doesn't support .org, so I've just disabled the
      uses in src/x86/{sysv, unix64}.S, as on Darwin.
    * Solaris/x86 needs to use EH_FRAME_FLAGS so manually and compiler
      generated .eh_frame sections match, otherwise libffi.so fails to link:
    * Solaris/x86 /bin/as has different COMDAT syntax; I've disabled it for
      the moment.

commit 536366349ced9d57c873d64e219ba30992a83c06
Author: Yavor Georgiev <fealebenpae@gmail.com>
Date:   Fri Jan 16 15:19:38 2015 +0200

    aarch64: implement the trampoline table workaround for ffi closures on Apple systems
    
    This is a direct copy/paste port of the ARM code, with changes because of Aarch64 pc-relative addressing restrictions.

commit 05e65b4e2064f24669e8cc1c1cece1cbb0577548
Author: Yavor Georgiev <fealebenpae@gmail.com>
Date:   Fri Jan 16 15:18:04 2015 +0200

    aarch64: rewrite range syntax into list to appease Clang
    
    Clang's assembler in Xcode 6 appears to choke when the operand of st4 is a range, but is happy with a list.

commit 5cd411ad5d62b1dadfd02f75f99121801c8be4c9
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Jan 13 15:44:03 2015 -0500

    New test case for old aarch64 bug

commit e46842b4149e19106a9eb6066ef022d8b6a7ad5d
Author: Richard Henderson <rth@twiddle.net>
Date:   Tue Jan 13 07:23:48 2015 -0800

    Remove extra brackets in configure.host
    
    This table is no longer in configure.ac, needing
    protection from m4.

commit f27c4e46734fa1342236b16161e6006a9d2557e9
Author: Richard Henderson <rth@twiddle.net>
Date:   Tue Jan 13 07:22:07 2015 -0800

    x86: Fix thinko in ffi_raw_call
    
    Missed structure initialization for raw path.
    Apparently there are no tests for this outside gcc.

commit c82cc159426d8d4402375fa1ae3f045b9cf82e16
Merge: 1c61e73 e1a5ddb
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Jan 10 09:25:26 2015 -0500

    Merge pull request #166 from chevah/master
    
    Fix expr error in Solaris 10 when using gcc.

commit 1c61e73ad8e920d6bff337fac02de71f3a66bc38
Merge: dd0b59a 3fa5d70
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Jan 10 09:23:30 2015 -0500

    Merge pull request #165 from rth7680/pcc
    
    Support PCC as producer and consumer

commit dd0b59a5cf63e0f9602c76fc89a4cb62593ff6f1
Merge: 9131039 b7f6d7a
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Jan 10 09:22:55 2015 -0500

    Merge pull request #164 from rth7680/darwin
    
    Fix build on darwin

commit 9131039c93b6ecd1c3946905a3b6dafb5dc4ee40
Merge: 4ca2262 7282d32
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Jan 10 09:22:42 2015 -0500

    Merge pull request #160 from nobu/msvc-no-complex
    
    x86: MSVC does not support Complex type

commit 4ca2262ad61189276b2d95aab652a23c8db2a5b9
Merge: 58bf7d6 5f8881a
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Jan 10 09:21:37 2015 -0500

    Merge pull request #159 from nobu/fix-void-arith
    
    x86: Fix void pointer arithmetic

commit e1a5ddb3067f83563cb8a6b8ac4d0f58d4699262
Author: Mișu Moldovan <dumol@chevah.com>
Date:   Wed Jan 7 17:51:07 2015 +0200

    Fix expr error in Solaris 10 when using gcc.

commit 3fa5d70cbb18b39a5e44f1c7984dedf73446bf6c
Author: Richard Henderson <rth@twiddle.net>
Date:   Mon Jan 5 13:03:06 2015 -0800

    x86: Avoid fastcall when building with pcc
    
    Apparently, PCC doesn't support the fastcall calling convention.
    Nor does it issue a warning or error for the attribute that it
    does not understand.

commit a03d2310ed53bb8b3a4610af04015ef9df6ea36c
Author: Richard Henderson <rth@twiddle.net>
Date:   Wed Dec 24 16:03:34 2014 -0800

    x86: Load structure return address into eax

commit b7f6d7aa9b0d7b19eec28a945251e09a4b65b275
Author: Richard Henderson <rth@twiddle.net>
Date:   Wed Dec 10 13:37:36 2014 -0800

    x86: Reinstate hand-written unwind info for sysv.S

commit 6cedf81ca7cbad01b3fcc2c4475d860095bfb062
Author: Richard Henderson <rth@twiddle.net>
Date:   Wed Dec 10 09:43:58 2014 -0800

    x86: Expand FFI_GO_CLOSURE
    
    If we're going to have to hand-write unwind info for darwin,
    these macros make the job harder.

commit ae842a515b6e2a486d73ce8f9dbe5fee6c3fd1ff
Author: Iain Sandoe <iain@codesourcery.com>
Date:   Tue Nov 25 11:43:40 2014 +0100

    x86: More Darwin unwind fixups
    
    EHFrame{N} IIRC is a special cue to ld64 that it should treat the unwind
    in the object as "special/legacy" .. [these days everything is .cfi_xxxx
    (except, cctools-as, as you noted)] .. without that much confusion arises
    with ld64's atom-isation of the eh_frame section.
    
    xxxx.eh labels are not needed for darwin ld64 >= 85.2.1 (i.e. darwin9,
    xcode 3.1.4) to all intents and purposes, that's all that matters now,
    since I think that anyone trying to build on 10.4/darwin8/xcode2.5 would
    have to use a later ld64 (from odcctools) for other reasons.

commit 8fa3c9f24b5ef6da2f24a9f071984d033dd9e00c
Author: Richard Henderson <rth@twiddle.net>
Date:   Tue Nov 25 09:27:54 2014 +0100

    x86: Reinstate hand-written unwind info for unix64.S
    
    One more try to get default Darwin to work.

commit 5f35e0ffcc05a72ce0aacf228dc06d1262754660
Author: Richard Henderson <rth@twiddle.net>
Date:   Mon Nov 24 16:26:50 2014 +0100

    x86: Avoid using gas local labels
    
    Which are unsupported by Darwin cctools as.
    Thankfully this doesn't uglify the source too much.

commit ed1ca2777c35fe2f2751de255df3e16f17bdbd8d
Author: Richard Henderson <rth@twiddle.net>
Date:   Mon Nov 24 13:02:03 2014 +0100

    x86: Remove use of .cfi_escape
    
    The unwind info isn't 100% correct at all points during the epilogue,
    and not annotating is just as incorrect as the annotation.  This works
    better on systems that do not support DW_OP_call_frame_cfa.

commit 1b12593d7e595c03e5c06377feaeb8ad1b813681
Author: Richard Henderson <rth@twiddle.net>
Date:   Mon Nov 24 12:55:43 2014 +0100

    x86: Honor alignment of arguments
    
    Darwin aligns long-double to 16, and thus all of the long double
    tests were failing due to not honoring that.  We ought to be able
    to devise a test case for GCC using __attribute__((aligned)) that
    would have failed too.

commit 042b8dafeeee82667e00660fb1edeab72fd9de47
Author: Richard Henderson <rth@twiddle.net>
Date:   Mon Nov 24 11:24:02 2014 +0100

    x86: Use .balign not .align
    
    The Apple assembler defaults to power of two alignment, rather than
    byte alignment like everyone else.  Force byte alignment by using
    the proper directive.

commit 0172bc029cd943dce99f82b9d857c51e746574e5
Author: Richard Henderson <rth@twiddle.net>
Date:   Mon Nov 24 10:42:02 2014 +0100

    x86: Disable .org for Darwin

commit 9f112619c187e135132b765adeedef89ee354eb2
Author: Richard Henderson <rth@twiddle.net>
Date:   Sat Nov 22 20:02:43 2014 +0100

    x86: Best guess at update for Darwin

commit 7282d3289c6f6e2cc21e2c2b554c33af00ac3474
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
Date:   Mon Dec 22 17:14:40 2014 +0900

    x86: MSVC does not support Complex type

commit 5f8881a5913a9554cbc2b5fed7057627b9bb9ece
Author: Nobuyoshi Nakada <nobu@ruby-lang.org>
Date:   Mon Dec 22 17:08:08 2014 +0900

    x86: Fix void pointer arithmetic

commit 58bf7d65d8896f198624c591cc31e6e01a09cc31
Merge: 75b2199 7ba30b1
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Dec 20 10:20:40 2014 -0500

    Merge pull request #158 from rth7680/s390
    
    S390

commit 7ba30b19060dfefefeb91970a862e5b215606602
Author: Richard Henderson <rth@redhat.com>
Date:   Fri Dec 19 11:38:17 2014 -0500

    s390: Inline and tidy ffi_prep_args
    
    As per discussion with Ulrich Weigand, document the restrictions
    on the code within ffi_call_int as we simultaneously prepare
    stack frames for ffi_call_SYSV and the target function.

commit f69ec6f35db93163b7f33e43129d274995c8122d
Author: Richard Henderson <rth@redhat.com>
Date:   Thu Dec 18 16:21:07 2014 -0500

    s390: Use pc-relative insns in 31-bit mode
    
    It's silly to stick to esa/390 features when the compiler won't.
    Detect when brasl and larl are used by the compiler and then use
    them in the assembly.

commit 2f530de168e0253ac06e044c832132c496e8788b
Author: Richard Henderson <rth@redhat.com>
Date:   Thu Dec 18 16:01:59 2014 -0500

    s390: Reorganize assembly
    
    Avoid using ffi_prep_args as a callback; do all the work setting
    up the frame within ffi_call_int directly.  Save fewer registers
    in ffi_closure_SYSV.

commit 97512ded052678993ffcfa3aec0035cce1585138
Author: Richard Henderson <rth@redhat.com>
Date:   Thu Dec 18 16:01:15 2014 -0500

    s390: Avoid aliasing warnings

commit c860ca9ac0fc7ee44124c5637dda751f55e4fa3f
Author: Richard Henderson <rth@redhat.com>
Date:   Wed Dec 17 13:24:03 2014 -0500

    s390: Kill trailing whitespace

commit 02b7c89967307cea91714fb6e4e53048e1b5396e
Author: Dominik Vogt <vogt@linux.vnet.ibm.com>
Date:   Wed Dec 17 13:20:51 2014 -0500

    s390: Go closure support

commit 75b2199f264f42de814528ccf4bfd2ef427665b5
Merge: 8a3a272 2f65246
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Dec 12 10:13:56 2014 -0500

    Merge pull request #157 from rth7680/x86
    
    Two fixes for x86

commit 8a3a2723aaa615cb95ee1c798469d7a3b2d95d31
Merge: 9ae3bc8 542e004
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Dec 12 10:13:27 2014 -0500

    Merge pull request #156 from rth7680/sparc
    
    sparc: Define FFI_TARGET_SPECIFIC_VARIADIC for v9

commit 2f652469684d6d2b3e54705294c7e81cffe1341f
Author: Richard Henderson <rth@twiddle.net>
Date:   Thu Dec 11 14:16:00 2014 -0800

    x86: Handle void arguments as if an empty structure
    
    Since libffi currently doesn't allow empty structures, libgo
    currently maps them to ffi_type_void.  Given that we'll abort
    on this case, handle it gracefully.

commit 097ccfd6a6b94a3c3b5bfc269a7afd1dc4f7a051
Author: Richard Henderson <rth@twiddle.net>
Date:   Wed Dec 10 13:25:14 2014 -0800

    x86: Fix some unwind errors

commit 9ae3bc870ee07820b60d368f137ea3b5daca850e
Author: James Greenhalgh <james.greenhalgh@arm.com>
Date:   Sat Dec 6 23:58:41 2014 -0500

    Fix for https://github.com/atgreen/libffi/issues/141

commit a5a40960bb6ccb029d2d9d4e18d37f6e0dacb913
Merge: 9ca4370 590663b
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 19 21:13:50 2014 -0500

    Merge pull request #151 from amodra/master
    
    powerpc: go closures for linux

commit 590663b30b1f35b6136cf55d8870a2394ed78c21
Author: Richard Henderson <rth@twiddle.net>
Date:   Tue Nov 18 12:56:58 2014 +1030

    powerpc: Fix ffi_go_closure_linux64
    
    Unlike ffi_closure_LINUX64, this entry point is called normally,
    so we already have the TOC in R2 and the closure in R11.
    
            * powerpc/linux64_closure.S (ffi_closure_LINUX64): Remove a
            register dependency chain.
            (ffi_go_closure_linux64): Don't load r11 or r2.

commit fa1040c111b3e423bc9c7e78d9af89470c0fa2fb
Author: Alan Modra <amodra@gmail.com>
Date:   Mon Nov 10 09:42:31 2014 +1030

    GO closures for powerpc linux
    
    Plus .cfi async unwind info, rearrangement of ffi_call_linux64 and
    ffi_call_SYSV function params to avoid register copies, tweaks to
    trampolines.
    
            * src/powerpc/ffitarget.h (FFI_GO_CLOSURES): Define.
            * src/powerpc/ffi.c (ffi_call_int): New function with extra
            closure param, and args rearranged on ffi_call_linux64 and
            ffi_call_SYSV calls, extracted from ..
            (ffi_call): ..here.
            (ffi_call_go, ffi_prep_go_closure): New functions.
            * src/powerpc/ffi_linux64.c (ffi_prep_closure_loc_linux64): Make
            hidden.  Only flush insn part of ELFv2 trampoline.  Don't shuffle
            ELFv1 trampoline.
            (ffi_closure_helper_LINUX64): Replace closure param with cif, fun,
            user_data params.
            * src/powerpc/ffi_powerpc.h (ffi_go_closure_sysv): Declare.
            (ffi_go_closure_linux64): Declare.
            (ffi_call_SYSV, fi_call_LINUX64): Update.
            (ffi_prep_closure_loc_sysv, ffi_prep_closure_loc_linux64): Declare.
            (ffi_closure_helper_SYSV, ffi_closure_helper_LINUX64): Update.
            * src/powerpc/ffi_sysv.c (ASM_NEEDS_REGISTERS): Increase to 6.
            (ffi_prep_closure_loc_sysv): Use bcl in trampoline, put data words
            last, flush just the insn part.
            (ffi_closure_helper_SYSV): Replace closure param with cif, fun and
            user_data params.
            * src/powerpc/linux64.S (ffi_call_LINUX64): Replace hand-written
            .eh_frame with .cfi directives.  Adjust for changed param order.
            Pass extra "closure" param to user function in static chain.  Add
            .cfi directives to describe epilogue.  Don't provide traceback
            table for ELFv2 or _CALL_LINUX.
            * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Replace
            hand-written .eh_frame with .cfi directives.  Adjust for changed
            ffi_closure_helper_LINUX64 params.  Add .cfi directives to
            describe epilogue.  Don't provide traceback table for ELFv2 or
            _CALL_LINUX.
            (ffi_go_closure_linux64): New function.
            * src/powerpc/sysv.S: Remove redundant .globl ffi_prep_args_SYSV.
            (ffi_call_SYSV): Make hidden.  Replace hand-written .eh_frame with
            .cfi directives.  Adjust for changed params.  Pass extra "closure"
            param to user function in static chain.  Add .cfi directives to
            describe epilogue.
            * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Make hidden.
            Replace hand-written .eh_frame with .cfi directives.  Adjust for
            changed ffi_closure_helper_SYSV params.  Add .cfi directives to
            describe epilogue.  Don't just use nops in the dead __NO_FPRS__
            epilogues.
            (ffi_go_closure_sysv): New function.

commit d3d06f4c94847402a08f0e4e2af2e4d726ed3180
Author: Alan Modra <amodra@gmail.com>
Date:   Mon Nov 10 13:50:05 2014 +1030

    Fix powerpc breakage from 6e8a4460
    
            * src/powerpc/ffitarget.h: #error on unexpected FFI_TYPE_LAST.
            (FFI_PPC_TYPE_LAST): Define.
            (FFI_TYPE_UINT128): Define in terms of FFI_PPC_TYPE_LAST.
            (FFI_SYSV_TYPE_SMALL_STRUCT, FFI_V2_TYPE_FLOAT_HOMOG): Likewise.
            (FFI_V2_TYPE_DOUBLE_HOMOG, FFI_V2_TYPE_SMALL_STRUCT): Likewise.

commit 9ca43706f9e59ee3a0b288884c90fd51d8926a9b
Merge: 5211c72 a9ed0c3
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 19 11:32:08 2014 -0500

    Merge pull request #148 from gpakosz/dlmalloc-preprocessor-fix
    
    dlmalloc: change defined(i386) to defined(__i386__)

commit 542e004710e3f1d7c137bba305a16538cd6257d6
Author: Richard Henderson <rth@twiddle.net>
Date:   Tue Nov 18 05:07:00 2014 -0800

    sparc: Define FFI_TARGET_SPECIFIC_VARIADIC for v9
    
    This is a port of
    
      http://gcc.gnu.org/viewcvs?rev=207763&root=gcc&view=rev
    
    aka GCC PR libffi/60073, to the rewritten Sparc codebase.
    Supposedly, we should have seen failures with the existing
    libffi.call/cls_double_va.c testcase, but I hadn't.
    Perhaps a gcc newer than 4.6.3 is required to see that...

commit a9ed0c3a0428f5fd4ed2166fa95a608595e11a4d
Author: Gregory Pakosz <gpakosz@myscript.com>
Date:   Tue Nov 18 09:37:07 2014 +0100

    dlmalloc: change defined(i386) to defined(__i386__)
    
    When compiling with --std==c99, GCC and clang don't define i386 but __i386__

commit 5211c7207ec81dfdfa9acdcd86b49b9ff66b9d91
Merge: 3316b66 ccdd7bb
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Nov 17 09:07:07 2014 -0500

    Merge pull request #147 from rth7680/go/alpha
    
    testsuite: Fix alpha static chain register name

commit ccdd7bb8566b2fd1da5c4b5c8eaa2db43a69e720
Author: Richard Henderson <rth@twiddle.net>
Date:   Sun Nov 16 12:12:23 2014 +0100

    testsuite: Fix alpha static chain register name

commit 3316b666e3074fe0eebff4fe0458979961b26651
Merge: b698638 dea49e2
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 15 07:31:41 2014 -0500

    Merge pull request #145 from rth7680/master
    
    Configure and testsuite cleanups, v2

commit b698638d7601de994410c5c1b2f5c2c648015b7b
Merge: a353d5b 771fabc
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 15 07:29:58 2014 -0500

    Merge pull request #144 from atrosinenko/testsuite-fp-comparison-fix
    
    Floating point number comparison fix for testsuite

commit a353d5b16cfbb60f1a42bdec74b0f272701f3ecb
Merge: 4aa702a e029c70
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 15 07:27:21 2014 -0500

    Merge pull request #143 from adamkaplan/patch-1
    
    Update i386 & armv7 minimum iOS version to 7.0

commit dea49e2020b2fc97ba9293200f316f7a7b3ca73b
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Nov 14 13:05:14 2014 +0100

    x86: Fix typo in ffi_prep_go_closure
    
    Used the wrong register for THISCALL and FASTCALL.

commit c9f5b6648b0f052bbca8b50615284dd975e9ed29
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Nov 14 13:04:33 2014 +0100

    testsuite: Add trivial tests for Go closures

commit c952a92e20aa6013d8202d0b3fa1d87838c83054
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Nov 14 11:00:14 2014 +0100

    testsuite: Move complex tests to their own subdirectory
    
    It seems a bit silly to isolate them by globbing vs "*complex*"
    when we can just as easily put them in their own subdirectory.

commit f1301a54bb80e6ae23f7687c68f36875dae69134
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Nov 14 10:50:29 2014 +0100

    testsuite: Use feature test rather than enumeration for complex

commit b5ade2fb5d9ba06519484677a5474e5dad48c2e3
Author: Richard Henderson <rth@twiddle.net>
Date:   Thu Nov 13 09:06:10 2014 -0800

    testsuite: Detect clang
    
    Clang doesn't like the -Wno-psabi argument that we want to pass to GCC.
    Since clang is detected as GCC via __GNUC__, use ax_cv_c_compiler_vendor.

commit 5d69d57a053c5049df29242def492159e1fadbae
Author: Richard Henderson <rth@twiddle.net>
Date:   Thu Nov 13 13:50:39 2014 +0100

    configure: Move target source selection into configure.host
    
    This eliminates the AM_CONDITIONAL ugliness, which eliminates
    just a bit of extra boilerplate for a new target.
    
    At the same time, properly categorize the EXTRA_DIST files
    into SOURCES and HEADERS, for the generation of ctags.

commit 771fabc6d5379e64e5ab9e5f1ca6eb5960617432
Author: Anatoly Trosinenko <anatoly.trosinenko@gmail.com>
Date:   Fri Nov 14 14:21:35 2014 +0300

    Take a float absolute value using fabs() instead of abs().
    
    Replace integer abs() by floating point fabs() in the approximate
    equality check for float values.

commit 9622ede2e24067a09380c63da8d5007ec1f03dc4
Author: Anatoly Trosinenko <anatoly.trosinenko@gmail.com>
Date:   Fri Nov 14 13:18:04 2014 +0300

    Fix floating point number comparisons in testsuite/libffi.call/float[123].c.
    
    Rewrite the checks for approximate equality of floating point return
    values to be in the form "fabs(a - b) < EPS" instead of just
    "a - b < EPS".

commit e029c70fa7da7a489157b2a2a88349aaffb051de
Author: Adam <adkapx@gmail.com>
Date:   Thu Nov 13 15:08:16 2014 -0500

    Update i386 & armv7 minimum iOS version to 7.0
    
    iOS 5 (and any below 7.1) is deprecated. Apple doesn't distribute the supporting libraries for this platform anymore as of Xcode 6, so it causes a linker error.

commit 57f52484573613e2def21171184f50bd72209cac
Author: Richard Henderson <rth@twiddle.net>
Date:   Thu Nov 13 12:42:54 2014 +0100

    configure: Split out configure.host
    
    Split out the host case statement to a separate file, so that
    we don't have to regenerate configure.in for changes therein.

commit f8632815a6515a6709802ad23909585664ba1b9d
Author: Richard Henderson <rth@twiddle.net>
Date:   Thu Nov 13 12:32:35 2014 +0100

    powerpc: Delete patch output
    
    Clearly added by mistake.

commit 4aa702a0e0ffc9b8a672af380103f607d339a822
Merge: 20562ac 8d5debc
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 12 08:08:57 2014 -0500

    Merge branch 'rth7680-go-closure'

commit 8d5debc7904aa5c4f1fbf5d5b26450ec5a5b43c6
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 12 08:04:51 2014 -0500

    Update in preparation for next release

commit 56735e05fed77a3920a8cac262666c9eb0e75b66
Merge: 20562ac 0e303c0
Author: Richard Henderson <rth@twiddle.net>
Date:   Wed Nov 12 07:11:53 2014 -0500

    Merge branch 'go-closure' of https://github.com/rth7680/libffi into rth7680-go-closure
    
    Conflicts:
            src/aarch64/ffi.c

commit 20562ac0427c3578250d04c6e34fb0127d4551cf
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 12 07:00:59 2014 -0500

    Fix for AArch64. Release as 3.2.1.

commit 0e303c065779afb42cfdb2ea20c0e1a557dc16f0
Author: Richard Henderson <rth@twiddle.net>
Date:   Wed Nov 12 03:58:58 2014 -0800

    x86: Work around clang bugs
    
    http://llvm.org/bugs/show_bug.cgi?21500
    http://llvm.org/bugs/show_bug.cgi?21501
    http://llvm.org/bugs/show_bug.cgi?21515

commit 6eec410f1512d0584276db5f4b83711330e830d7
Author: Richard Henderson <rth@twiddle.net>
Date:   Sun Oct 26 15:29:04 2014 -0700

    sparc: Re-add abi compliant structure support
    
    The original code, removed in the "rewrite" patch, was incorrect for
    large structures, and required dynamic allocation of a trampoline on
    every ffi_call.
    
    Instead, allocate a 4k entry table of all possible structure returns.
    The table is 80k, but is read-only and dynamically paged, which ought
    to be better than allocating the trampoline.
    
    This is difficult to test with gcc.  One can only use -O0 at present.
    See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63668.

commit 92022496ef7a9439f48a2ef11e460c300ac863d7
Author: Richard Henderson <rth@twiddle.net>
Date:   Sun Oct 26 14:48:28 2014 -0700

    sparc: Add support for Go closures

commit ad89c2d9e93d5a713ae4113567b4ca6c4fbbf17c
Author: Richard Henderson <rth@twiddle.net>
Date:   Sun Oct 26 13:16:03 2014 -0700

    sparc: Add support for complex types

commit 20da5b41324de524ea3ee1f84f402828b7c332dc
Author: Richard Henderson <rth@twiddle.net>
Date:   Sat Oct 25 16:24:41 2014 -0700

    sparc: Handle more cases of structure return directly

commit 0686c2e71c8e094cf003f199e3f578bcdede43ba
Author: Richard Henderson <rth@twiddle.net>
Date:   Sat Oct 25 14:52:45 2014 -0700

    sparc: Preprocess float point struct return
    
    We can eliminate recursion and speed structure return
    by flattening a nested structure tree into a bitmask.

commit 2b27890ba77db6a23d37fc70897109e4b2803c2d
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Oct 24 16:10:48 2014 -0700

    sparc: Rewrite everything
    
    It's impossible to call between v8 and v9 ABIs, because of the stack bias
    in the v9 ABI.  So let's not pretend it's just not implemented yet.  Split
    the v9 code out to a separate file.
    
    The register windows prevent ffi_call from setting up the entire stack
    frame the assembly, but we needn't make an indirect call back to prep_args.

commit 5d7b54450582f31d0d5d3ecca7f330b70446f195
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Oct 24 11:45:53 2014 -0700

    sparc: Tidy up symbols
    
    Assembly to use local labels, .type annotation, hidden annotation.
    I do retain the _prefix for the symbols, but given that it wasn't
    done consistently across all symbols, I doubt it's actually needed.

commit fd4f7cc0cabae66a91e40f8645791740b9416bc1
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Oct 24 11:11:53 2014 -0700

    sparc: Eliminate long double ifdefs

commit ab83cbb90b280195e636976098d3674f5ffc1d0a
Author: Richard Henderson <rth@twiddle.net>
Date:   Wed Oct 29 14:38:42 2014 -0400

    arm: Add support for Go closures

commit 6fa617dabc3d99e19d47ac9bc4127c56e3163008
Author: Richard Henderson <rth@twiddle.net>
Date:   Tue Oct 21 11:27:11 2014 -0400

    arm: Add argument space for the hidden struct return pointer
    
    This should have been failing all along, but it's only
    exposed by the complex_int test case.

commit a529bec27b64ab846ab2643ecbeb22e01f35c7dc
Author: Richard Henderson <rth@twiddle.net>
Date:   Tue Oct 21 11:26:59 2014 -0400

    arm: Add support for complex types

commit 5e88ebe62717b8e1e2f8d96c10f78a7134caa765
Author: Richard Henderson <rth@twiddle.net>
Date:   Mon Oct 20 15:10:43 2014 -0400

    arm: Remove internal FFI_TYPE constants
    
    These have been replaced by the contents of internal.h.

commit a4b785ea695e929b91d64e1e8b514411ae8bafe8
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Oct 17 02:07:32 2014 -0400

    arm: Rewrite ffi_closure
    
    Move the push of the argument registers into ffi_closure_SYSV,
    reducing the size of the trampoline.

commit e7f15f60e86ad8931b2c4a516945d0b76b4bda20
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Oct 17 01:27:16 2014 -0400

    arm: Rewrite ffi_call
    
    Use the trick to allocate the stack frame for ffi_call_SYSV
    within ffi_call itself.

commit a74a3aaddbcc730d9aa0a4787f136c9cc19b82b3
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Oct 17 01:21:22 2014 -0400

    arm: Rewrite vfp_type_p
    
    Do not modify the ffi_type.  Rearrange the tests so that we
    quickly eliminate structures that cannot match.  Return an
    encoded value of element count and base type.

commit 0d39b4bb692b1a8e4f3354badcd9e123f8276bd4
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Oct 17 01:02:52 2014 -0400

    arm: Deref ffi_put_arg arguments

commit 57b24fb3f5471262ce57e1a912774d6e7de5ada7
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Oct 17 00:53:21 2014 -0400

    arm: Deref ffi_align argument

commit c129bea82a25c9b0f3af3bf48c35c55257092f87
Author: Richard Henderson <rth@twiddle.net>
Date:   Wed Oct 15 17:28:53 2014 -0400

    arm: Reindent arm/ffi.c

commit 9761b7bb70b4c47dc11dc74830964a0b3b3176d3
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Oct 17 21:26:52 2014 -0700

    alpha: Add support for Go closures

commit f41bec3b576aa5ff8915b1188446c2dc086dfe64
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Oct 17 20:46:48 2014 -0700

    alpha: Add support for complex types

commit 5f917371afcb4d3363fd33b547844c47264f6d4e
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Oct 17 13:47:26 2014 -0700

    alpha: Clean up conversion of float values
    
    Don't use "real" conversion to double, lest we raise
    exceptions when passing signalling nans.

commit 32a26b75ba92665fa093b539318e83d916e3effb
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Oct 17 12:33:53 2014 -0700

    alpha: Reorganize cif flags
    
    Unties the backend from changes to FFI_TYPE_* constants, and allows
    compilation to succeed after the addition of FFI_TYPE_COMPLEX.
    
    Delete the hand-written unwind info.

commit c6352b664c31835b9527d747f8a29b4754cabb0e
Author: Richard Henderson <rth@redhat.com>
Date:   Thu Oct 23 00:26:14 2014 -0400

    aarch64: Add support for Go closures

commit 0e41c73b092064e986d484270a13046479d6bda3
Author: Richard Henderson <rth@redhat.com>
Date:   Wed Oct 22 23:48:12 2014 -0400

    aarch64: Move x8 out of call_context
    
    Reduces stack size.  It was only used by the closure, and there
    are available argument registers.

commit a992f8789b5202ca180e67b16b47ee834160665c
Author: Richard Henderson <rth@redhat.com>
Date:   Wed Oct 22 22:58:09 2014 -0400

    aarch64: Add support for complex types

commit 658b2b56001e293848ea22b70068bd7f8daa7205
Author: Richard Henderson <rth@redhat.com>
Date:   Wed Oct 22 22:36:07 2014 -0400

    aarch64: Remove aarch64_flags
    
    This field was useless from the start, since the normal flags
    field is available for backend use.

commit 4a3cbcaa4f1d3834e0b74c9a841c3f51c5e0454c
Author: Richard Henderson <rth@redhat.com>
Date:   Wed Oct 22 22:32:13 2014 -0400

    aarch64: Unify scalar fp and hfa handling
    
    Since an HFA of a single element is exactly the same as scalar,
    this tidies things up a bit.

commit 12cf89ee04dc01650f71bc38ce414c953c83199a
Author: Richard Henderson <rth@redhat.com>
Date:   Wed Oct 22 21:53:30 2014 -0400

    aarch64: Move return value handling into ffi_closure_SYSV
    
    As with the change to ffi_call_SYSV, this avoids copying data
    into a temporary buffer.

commit 4fe1aea1211aaf228c2db867b8ac6f1620de72d4
Author: Richard Henderson <rth@redhat.com>
Date:   Wed Oct 22 17:06:19 2014 -0400

    aarch64: Move return value handling into ffi_call_SYSV
    
    This lets us pass return data directly to the caller of ffi_call
    in most cases, rather than storing it into temporary storage first.

commit 325471ea6a7bf954943485458a1bd391635dfaa8
Author: Richard Henderson <rth@redhat.com>
Date:   Wed Oct 22 13:58:59 2014 -0400

    aarch64: Merge prep_args with ffi_call
    
    Use the trick to allocate the stack frame for ffi_call_SYSV
    within ffi_call itself.

commit 8c8161cb623585d5d0c783b9d494b9b74ada6ced
Author: Richard Henderson <rth@redhat.com>
Date:   Wed Oct 22 12:52:07 2014 -0400

    aarch64: Tidy up abi manipulation
    
    Avoid false abstraction, like get_x_addr.  Avoid recomputing data
    about the type being manipulated.  Use NEON insns for HFA manipulation.
    
    Note that some of the inline assembly will go away in a subsequent patch.

commit b55e03665ddf2423df9baee0d3172892ba781c26
Author: Richard Henderson <rth@redhat.com>
Date:   Wed Oct 22 12:33:59 2014 -0400

    aarch64: Treat void return as not passed in registers
    
    This lets us do less post-processing when there's no return value.

commit 2e32f9bf6ffa6782b70fafe96bdf21c5aa44f534
Author: Richard Henderson <rth@redhat.com>
Date:   Tue Oct 21 22:49:05 2014 -0400

    aarch64: Use correct return registers
    
    There are fewer return registers than argument registers.

commit 95a04af134431ccc8230aca1641541a5e8fcbdc9
Author: Richard Henderson <rth@redhat.com>
Date:   Tue Oct 21 22:41:07 2014 -0400

    aarch64: Reduce the size of register_context
    
    We don't need to store 32 general and vector registers.
    Only 8 of each are used for parameter passing.

commit 77c4cddca6aeb6e545e21f235e29323e05f5a3a3
Author: Richard Henderson <rth@redhat.com>
Date:   Tue Oct 21 13:30:40 2014 -0400

    aarch64: Simplify AARCH64_STACK_ALIGN
    
    The iOS abi doesn't require padding between arguments, but
    that's not what AARCH64_STACK_ALIGN meant.  The hardware will
    in fact trap if the SP register is not 16 byte aligned.

commit b5f147d84761dc673ffe01d6af82bcde4ea47928
Author: Richard Henderson <rth@redhat.com>
Date:   Tue Oct 21 13:27:57 2014 -0400

    aarch64: Always distinguish LONGDOUBLE
    
    Avoid if-deffery by forcing FFI_TYPE_LONGDOUBLE different
    from FFI_TYPE_DOUBLE.  This will simply be unused on hosts
    that define them identically.

commit 38b54b9c180af13a3371e70a151a1a97e105b03f
Author: Richard Henderson <rth@redhat.com>
Date:   Tue Oct 21 13:17:39 2014 -0400

    aarch64: Improve is_hfa
    
    The set of functions get_homogeneous_type, element_count, and is_hfa
    are all intertwined and recompute data.  Return a compound quantity
    from is_hfa that contains all the data and avoids the recomputation.

commit 18b74ce54afab45fcf2a7d4eb86bb2ce9db8cec8
Author: Richard Henderson <rth@redhat.com>
Date:   Tue Oct 21 13:00:34 2014 -0400

    aarch64: Fix non-apple compilation

commit 2650f47fe8388f3281ec00e2d1e3bc777c1d3544
Author: Richard Henderson <rth@twiddle.net>
Date:   Thu Nov 6 10:57:04 2014 -0800

    x86: Use win32 name mangling for fastcall functions

commit f8c64e2486c956109bf5255a0c0a85f24cc86c72
Author: Richard Henderson <rth@twiddle.net>
Date:   Wed Nov 5 17:04:29 2014 +0100

    x86: Add support for Go closures

commit 198f469e91076f84ab6ac38055ad12a5490101cd
Author: Richard Henderson <rth@twiddle.net>
Date:   Wed Nov 5 16:34:41 2014 +0100

    x86: Add support for Complex

commit b21ec1ce783f09335c0e6c6f96ccc7e89da5a1b4
Author: Richard Henderson <rth@twiddle.net>
Date:   Wed Nov 5 10:15:25 2014 +0100

    x86: Rewrite closures
    
    Move everything into sysv.S, removing win32.S and freebsd.S.
    Handle all abis with a single ffi_closure_inner function.
    Move complexity of the raw THISCALL trampoline into assembly
    instead of the trampoline itself.
    Only push the context for the REGISTER abi; let the rest
    receive it in a register.

commit b9ac94f3af9b1ca1853850911b7d3bc058296c71
Author: Richard Henderson <rth@twiddle.net>
Date:   Sat Nov 1 15:10:34 2014 -0700

    x86: Rewrite ffi_call
    
    Decouple the assembly from FFI_TYPE_*.  Merge prep_args with ffi_call,
    passing the frame and the stack to the assembly.
    
    Note that this patch isn't really standalone, as this breaks closures.

commit 159d3788eb52b89ed6bc5dd6ebb85c02cd150232
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Oct 31 12:07:02 2014 -0700

    x86: Convert to gas generated unwind info

commit e7b0056d60f29675072454a575eed98053fc63d6
Author: Richard Henderson <rth@twiddle.net>
Date:   Thu Oct 30 13:57:39 2014 -0700

    x86: Force FFI_TYPE_LONGDOUBLE different from FFI_TYPE_DOUBLE
    
    There are few abis that set double = long double.  Eliminate the
    conditional compilation and let this code simply be unused there.

commit 4b2fad8fd583f1d9c36db0044c4d46316207aa49
Author: Richard Henderson <rth@twiddle.net>
Date:   Thu Oct 30 12:41:31 2014 -0700

    x86: Remove some conditional compilation
    
    Removal of ifdefs made possible to due to ffi_abi unification.

commit ef76205647bca77796882d31f6ab5e889f461f07
Author: Richard Henderson <rth@twiddle.net>
Date:   Thu Oct 30 12:13:31 2014 -0700

    x86: Tidy ffi_abi
    
    The x86_64 unix port only handles one ABI; don't define all of the
    other symbols.  The UNIX64 symbol retains the same value.
    
    The i386 ports ought to have the same symbols, even if we can't yet
    unify the values without incrementing the libffi soname.

commit 7cf841324f3d15c46833e0f2ddf8a98c4b24711e
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Nov 7 06:56:55 2014 -0800

    testsuite: Add two dg-do run markers
    
    Caught by clang warning about unused -L parameter.

commit fc501750f41e2ee7f4268f490f590ce97a25a818
Author: Richard Henderson <rth@twiddle.net>
Date:   Wed Nov 5 16:33:44 2014 +0100

    testsuite: Fix return_complex2 vs excessive precision
    
    Use the previously computed rc2 to validate, rather than
    recomputing a floating point result with excess precision.

commit 610c90bf7131de70318dc981a529a63ae36981b8
Author: Richard Henderson <rth@twiddle.net>
Date:   Tue Oct 28 11:21:50 2014 -0700

    x86_64: Add support for complex types

commit 32c56831636a489a1c5084e42ffbd935902b1033
Author: Richard Henderson <rth@twiddle.net>
Date:   Tue Oct 28 11:17:35 2014 -0700

    x86_64: Decouple return types from FFI_TYPE constants
    
    We can better support structure returns, and as prep for
    complex types.

commit 2e9dc1655600eb8928ebab13fa246187b6205109
Author: Richard Henderson <rth@twiddle.net>
Date:   Mon Oct 27 13:41:39 2014 -0700

    x86_64: Fixups for x32

commit ebd82769de5fc909ec9678aafca674ece394d173
Author: Richard Henderson <rth@twiddle.net>
Date:   Thu Oct 23 23:57:06 2014 -0700

    win64: Remove support from ffi.c

commit 99db4d42acc7ee6d2ad206848be38083d7b5e094
Author: Richard Henderson <rth@twiddle.net>
Date:   Thu Oct 23 14:12:18 2014 -0700

    win64: Rewrite
    
    It's way too different from the 32-bit ABIs with which it is
    currently associated. As seen from all of the existing XFAILs.

commit 6b62fb4a26d7363548a92f1a156562cfa648726e
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Oct 17 11:11:58 2014 -0700

    x86-64: Support go closures
    
    Dumps all of the hand-coded unwind info for gas generated.  Move jump
    table data into .rodata.  Adjust ffi_call_unix64 to load the static
    chain.  Split out sse portions of ffi_closure_unix64 to
    ffi_closure_unix64_sse rather than test cif->flags at runtime.

commit 89bbde8b4e802625bdbf830ea14e938beea79835
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Oct 17 10:55:11 2014 -0700

    Add ffi_cfi.h
    
    Have one copy of the HAVE_AS_CFI_PSEUDO_OP code
    to share between all backends.

commit e951d64c085267a30036907d02f94a70dee4c9d9
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Oct 17 10:12:25 2014 -0700

    Add entry points for interacting with Go
    
    A "ffi_go_closure" is intended to be compatible with the
    function descriptors used by Go, and ffi_call_go sets up
    the static chain parameter for calling a Go function.
    
    The entry points are disabled when a backend has not been
    updated, much like we do for "normal" closures.

commit a0bdc5250cd36f1d2578358e33299fd2408091ac
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Nov 11 09:43:01 2014 -0500

    Fix typo

commit 67c0c0705318d2e567fd48e680d63dca3619a235
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Nov 11 07:30:49 2014 -0500

    Final 3.2 changes

commit ee826b933bbdeb68ee81876ffb508c3908eed371
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Nov 11 07:29:26 2014 -0500

    Final 3.2 changes

commit c81a705d53be97899d314953987936213244b1ba
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Nov 4 13:29:58 2014 -0500

    Mention OpenRISC

commit 6a17ad540d7ddb7a812687f4380bd0ef2d2865bb
Merge: 990eb9d 0f316ab
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Sep 28 00:54:00 2014 -0400

    Merge pull request #134 from s-macke/openrisc
    
    Add OpenRISC support

commit 990eb9d4c244324771a7d878a168bb8eba1850c0
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Sep 28 00:50:29 2014 -0400

    Only run the complex type tests on supported platforms.

commit 0f316ab7c11b8315a838a6ae4645d36ff2c46f4c
Author: Sebastian Macke <sebastian@macke.de>
Date:   Sat Sep 27 00:19:15 2014 +0000

    Add OpenRISC support
    
    This patch adds support for the OpenRISC architecture.
    (http://opencores.org/or1k/Main_Page)
    
    This patch has been tested under Linux with QEMU-user emulation support.
    - 32 Bit
    - big endian
    - delayed instructions
    This is the only available configuration under Linux.
    
    The description of the ABI can be found on the official website.
    
    Is passes the testsuite except of the unwindtest_ffi_call.cc
    testcase, which seems to be a problem of gcc and not libffi.
    Some testcases of the gcc testsuite still fail.
    
    Signed-off-by: Sebastian Macke <sebastian@macke.de>

commit 6695983d2f0857caab220862de12f3f94a55bcf6
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 20 07:44:37 2014 -0400

    Add complex type support. Mostly broken right now

commit fbbf48fbdf9b1491af0aefc00523a1b5d8bb9349
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 20 07:43:51 2014 -0400

    Compile tests with -Wno-psabi when using GCC

commit ae8d2554c5f192be54dadc9f99a1449b4df1b222
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 20 07:08:37 2014 -0400

    Update version to 3.2

commit b2ca59d39d2192021316561ea9dda3d35d8d35d9
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 20 07:08:05 2014 -0400

    More README updates for 3.2

commit f920a01ad8eafc79daaf331499ef9a97696c46a7
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Sep 20 06:54:06 2014 -0400

    Update release notes.

commit bfcbf329c5e4bebdb32134d4e53260e17e4e66cc
Author: Bernd Edlinger <bernd.edlinger@hotmail.de>
Date:   Sat Sep 20 06:51:45 2014 -0400

    2014-05-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>
    
            Fix current cygwin-64 build problems.
            * src/java_raw_api.c: Remove if !defined(FFI_NO_RAW_API).
            * src/x86/ffi.c: Add if defined(__CYGWIN__).
            * src/x86/win64.S (ffi_closure_win64, ffi_call_win64): Added
            handling for FFI_TYPE_UINT64, FFI_TYPE_POINTER and FFI_TYPE_INT.
            Added SEH information.  Fixed formatting.

commit 32cb2ce81db9457c6bd43a2587d7fa23a2edb9b1
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Sat Sep 20 06:39:55 2014 -0400

    2014-09-10  Jakub Jelinek  <jakub@redhat.com>
    
            * src/powerpc/linux64.S: Emit .note.GNU-stack even when
            POWERPC64 is not defined.
            * src/powerpc/linux64_closure.S: Likewise.  Also test _CALL_ELF == 2.

commit aaf3101ba81af8f488502881648e3f687721671e
Author: Matthias Klose <doko@ubuntu.com>
Date:   Sat Sep 20 06:37:04 2014 -0400

    Fix -Werror=declaration-after-statement problem

commit 6e8a4460833594d5af1b4539178025da0077df19
Author: Dominik Vogt <vogt@linux.vnet.ibm.com>
Date:   Sat Sep 20 06:21:19 2014 -0400

    2014-07-22  Dominik Vogt  <vogt@linux.vnet.ibm.com>
    
            * src/types.c (FFI_TYPEDEF, FFI_NONCONST_TYPEDEF): Merge the macros by
            adding another argument that controls whether the result is const or not
            (FFI_LDBL_CONST): Temporary macro to reduce ifdef confusion
            * src/prep_cif.c (ffi_prep_cif_core): Replace list of systems with new
            macro FFI_TARGET_SPECIFIC_STACK_SPACE_ALLOCATION
            * src/pa/ffitarget.h (FFI_TARGET_SPECIFIC_STACK_SPACE_ALLOCATION):
            Define.
            * src/s390/ffitarget.h (FFI_TARGET_SPECIFIC_STACK_SPACE_ALLOCATION):
            Define.
            * src/x86/ffitarget.h (FFI_TARGET_SPECIFIC_STACK_SPACE_ALLOCATION):
            Define.
    
    2014-07-22  Dominik Vogt  <vogt@linux.vnet.ibm.com>
    
            * doc/libffi.texi (Primitive Types): Document ffi_type_complex_float,
            ffi_type_complex_double and ffi_type_complex_longdouble
            (Complex Types): New subsection.
            (Complex Type Example): Ditto.
            * testsuite/libffi.call/cls_align_complex_double.c: New
            FFI_TYPE_COMPLEX test.
            * testsuite/libffi.call/cls_align_complex_float.c: Ditto.
            * testsuite/libffi.call/cls_align_complex_longdouble.c: Ditto.
            * testsuite/libffi.call/cls_complex_double.c: Ditto.
            * testsuite/libffi.call/cls_complex_float.c: Ditto.
            * testsuite/libffi.call/cls_complex_longdouble.c: Ditto.
            * testsuite/libffi.call/cls_complex_struct_double.c: Ditto.
            * testsuite/libffi.call/cls_complex_struct_float.c: Ditto.
            * testsuite/libffi.call/cls_complex_struct_longdouble.c: Ditto.
            * testsuite/libffi.call/cls_complex_va_double.c: Ditto.
            * testsuite/libffi.call/cls_complex_va_float.c: Ditto.
            * testsuite/libffi.call/cls_complex_va_longdouble.c: Ditto.
            * testsuite/libffi.call/complex_double.c: Ditto.
            * testsuite/libffi.call/complex_defs_double.c: Ditto.
            * testsuite/libffi.call/complex_float.c: Ditto.
            * testsuite/libffi.call/complex_defs_float.c: Ditto.
            * testsuite/libffi.call/complex_longdouble.c: Ditto.
            * testsuite/libffi.call/complex_defs_longdouble.c: Ditto.
            * testsuite/libffi.call/complex_int.c: Ditto.
            * testsuite/libffi.call/many_complex_double.c: Ditto.
            * testsuite/libffi.call/many_complex_float.c: Ditto.
            * testsuite/libffi.call/many_complex_longdouble.c: Ditto.
            * testsuite/libffi.call/return_complex1_double.c: Ditto.
            * testsuite/libffi.call/return_complex1_float.c: Ditto.
            * testsuite/libffi.call/return_complex1_longdouble.c: Ditto.
            * testsuite/libffi.call/return_complex2_double.c: Ditto.
            * testsuite/libffi.call/return_complex2_float.c: Ditto.
            * testsuite/libffi.call/return_complex2_longdouble.c: Ditto.
            * testsuite/libffi.call/return_complex_double.c: Ditto.
            * testsuite/libffi.call/return_complex_float.c: Ditto.
            * testsuite/libffi.call/return_complex_longdouble.c: Ditto.
            * src/raw_api.c (ffi_raw_to_ptrarray): Handle FFI_TYPE_COMPLEX
            (ffi_ptrarray_to_raw): Ditto.
            * src/prep_cif.c (ffi_prep_cif_core): Abort if FFI_TYPE_COMPLEX is not
            implemented in libffi for the target.
            * src/java_raw_api.c (ffi_java_raw_size): FFI_TYPE_COMPLEX not supported
            yet (abort).
            (ffi_java_raw_to_ptrarray): Ditto.
            (ffi_java_rvalue_to_raw): Ditto.
            (ffi_java_raw_to_rvalue):  Ditto.
            * src/debug.c (ffi_type_test): Add debug tests for complex types.
            * include/ffi.h.in (FFI_TYPE_COMPLEX): Add new FFI_TYPE_COMPLEX.
            (FFI_TYPE_LAST): Bump.
            (ffi_type_complex_float): Add new ffi_type_....
            (ffi_type_complex_double): Ditto.
            (ffi_type_complex_longdouble): Ditto.
    
    2014-07-22  Dominik Vogt  <vogt@linux.vnet.ibm.com>
    
            * src/s390/ffitarget.h (FFI_TARGET_HAS_COMPLEX_TYPE): Define to provide
            FFI_TYPE_COMPLEX support.
            * src/s390/ffi.c (ffi_check_struct_type): Implement FFI_TYPE_COMPLEX
            (ffi_prep_args): Ditto.
            (ffi_prep_cif_machdep): Ditto.
            (ffi_closure_helper_SYSV): Ditto.

commit 4c5c4088aa3e4d8103ff9ca441937da64fdd849a
Merge: 862f53d 5d6340e
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Sep 18 19:10:54 2014 -0400

    Merge pull request #132 from nielsAD/master
    
    Pascal and Register calling convention support on x86

commit 862f53de04ff898a128be7eec592bae60930d6df
Merge: 5df3840 aebf2c3
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Sep 18 19:06:08 2014 -0400

    Merge pull request #130 from frida/fix/darwin-aarch64-float-alignment
    
    Fix alignment of FFI_TYPE_FLOAT for Apple's ARM64 ABI

commit 5df384077f3633ec8cf2e08f9199e5a44994dbad
Merge: 7b7a528 0f4e09d
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Sep 18 19:05:35 2014 -0400

    Merge pull request #129 from frida/fix/darwin-aarch64-cif-prep
    
    Fix non-variadic CIF initialization for Apple/ARM64

commit 7b7a5284de7a99edfcee5ac362dbf76251698e1e
Merge: 4cd5e84 6172a99
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Sep 18 18:28:05 2014 -0400

    Merge pull request #124 from knuesel/master
    
    Fix issue with builddir when calling configure with absolute path

commit 4cd5e840122e22636b5838943372c4ed74618e35
Merge: 1cee07b 08853e3
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Sep 18 18:27:15 2014 -0400

    Merge pull request #123 from ehsan/clang-cl
    
    Add support for building with clang-cl

commit 5d6340ef2cf81432da79ac8b0b1b1218ab391438
Author: nielsAD <niels.a.d@gmail.com>
Date:   Mon Aug 25 17:29:44 2014 +0200

    Determine whether register arguments (THISCALL/FASTCALL/REGISTER) are really passed via register to closures. Use stack if not.

commit 6e346487b879b4b056a847268e381ae6efec4c21
Author: nielsAD <niels.a.d@gmail.com>
Date:   Mon Aug 25 12:23:29 2014 +0200

    Fixed THISCALL/FASTCALL closures and added basic support for PASCAL/REGISTER closures.

commit 098dca6b31e42dd0256ed7d966729e31961f1461
Author: nielsAD <niels.a.d@gmail.com>
Date:   Sat Aug 23 00:18:47 2014 +0200

    Support for calling functions with PASCAL and REGISTER calling conventions on x86 Windows/Linux.
    Also changed indentation to be more consistent throughout the (adjusted) files.

commit 08853e32fb6b750cda664ee6d3290d340429dd4d
Author: Ehsan Akhgari <ehsan@mozilla.com>
Date:   Thu Jul 31 20:33:33 2014 -0400

    Enable forcing the usage of the static CRT in libffi's msvc wrapper
    
    This is required for AddressSanitizer builds with clang-cl.

commit aebf2c3023b5ff056a708dc34169f7b549b2ec4f
Author: Ole André Vadla Ravnås <ole.andre.ravnas@tillitech.com>
Date:   Fri Jul 25 21:40:50 2014 +0200

    Fix alignment of FFI_TYPE_FLOAT for Apple's ARM64 ABI

commit 0f4e09d27dc175ce3e95d070b794351663c7220e
Author: Ole André Vadla Ravnås <ole.andre.ravnas@tillitech.com>
Date:   Sat Jul 26 00:11:06 2014 +0200

    Fix non-variadic CIF initialization for Apple/ARM64
    
    Turns out `aarch64_nfixedargs` wasn't initialized in the non-variadic
    case, resulting in undefined behavior when allocating arguments.

commit 6172a995e14bdbc6150aa02a361f710626a5c293
Author: Jeremie Knuesel <jeremie.knusel@sensefly.com>
Date:   Wed Jun 25 12:28:17 2014 +0200

    Fix issue with builddir when calling configure with absolute path

commit fb25cd08ed5a87640b02f0feeb10a09b37cfddbe
Author: Ehsan Akhgari <ehsan@mozilla.com>
Date:   Wed Jun 11 12:07:24 2014 -0400

    Add support for building with clang-cl

commit 1cee07be4712411baa5eb8af22698bc8443a6d6e
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Jun 12 06:30:59 2014 -0400

    Remove compiler warning

commit ad0d1d239afc7ad09203847793dcc020856d1035
Author: Samuli Suominen <ssuominen@gentoo.org>
Date:   Thu Jun 12 06:30:21 2014 -0400

    Fix paths in libffi.pc.in

commit df31a85103b0cc232bbc340d7e782a3853c7fad5
Merge: 69289c1 360aa8c
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Jun 6 08:24:35 2014 -0400

    Merge pull request #122 from rvandermeulen/1014976
    
    Don't make --enable-debug imply using the debug CRT in libffi

commit 360aa8ca1ead2fdaefa7b1c6f01ad001d8abae7e
Author: Mike Hommey <mh+mozilla@glandium.org>
Date:   Mon Jun 2 09:21:10 2014 -0400

    Bug 1014976 - Don't make --enable-debug imply using the debug CRT in libffi.

commit 69289c10b0acb4b52c8b5df4cf738193c618db40
Author: Anthony Green <green@moxielogic.com>
Date:   Sat May 31 08:54:08 2014 -0400

    Prepare for libffi 3.1.1

commit 978c9540154d320525488db1b7049277122f736d
Author: Samuli Suominen <ssuominen@gentoo.org>
Date:   Sat May 31 08:53:10 2014 -0400

    Add missing GNU stack markings in win32.S

commit cbc5a3c0200aa6c2cf8d6798d69a21501557c83f
Author: Ryan Hill <rhill@gentoo.org>
Date:   Sat May 31 08:26:34 2014 -0400

    Fix typo

commit 9d8e3018ac3d0d338373bff7eefa9f006746f4ec
Author: Anthony Green <green@moxielogic.com>
Date:   Sat May 24 23:28:42 2014 -0400

    Update current version.

commit 18d56cca5a4ee95ad48b129100adf26231518ed0
Author: Anthony Green <green@moxielogic.com>
Date:   Mon May 19 18:05:33 2014 -0400

    Increment libtool version number

commit 629f1029c47e522e4331988f02f32c203a070e28
Merge: 0403f33 c1166d4
Author: Anthony Green <green@moxielogic.com>
Date:   Mon May 19 18:04:28 2014 -0400

    Merge pull request #120 from l0kod/tmpfile
    
    Create temporary file with O_TMPFILE and O_CLOEXEC when available

commit c1166d4f653bf6d17ad8c265cf5e8da84e2e76dc
Author: Mickaël Salaün <mic@digikod.net>
Date:   Mon May 12 19:44:08 2014 +0200

    closures: Check for mkostemp(3)

commit 8daeed9570af72eb135c8ded460d2888f05b2e68
Author: Mickaël Salaün <mic@digikod.net>
Date:   Sun May 11 22:54:58 2014 +0200

    closures: Create temporary file with O_TMPFILE and O_CLOEXEC when available
    
    The open_temp_exec_file_dir function can create a temporary file without
    file system accessible link. If the O_TMPFILE flag is not defined (old
    Linux kernel or libc) the behavior is unchanged.
    
    The open_temp_exec_file_name function now need a new argument "flags"
    (like O_CLOEXEC) used for temporary file creation.
    
    The O_TMPFILE flag allow temporary file creation without race condition.
    This feature/fix prevent another process to access the (future)
    executable file from the file system.
    
    The O_CLOEXEC flag automatically close the temporary file for any
    execve. This avoid transmitting (executable) file descriptor to a child
    process.

commit 0403f332b1f478696c30d3d8a0e2f6eef24aaf88
Author: Anthony Green <green@moxielogic.com>
Date:   Mon May 19 09:41:32 2014 -0400

    Update date. Annoucing 3.1 today.

commit 94ac0c168ee7b115409121d88b25a4979446c8da
Author: Anthony Green <green@moxielogic.com>
Date:   Mon May 19 09:37:21 2014 -0400

    Increment libtool library revision number

commit 57465744b6e1295d7202de5a7734df589518f1c8
Author: Anthony Green <green@moxielogic.com>
Date:   Sun May 11 10:30:22 2014 -0400

    Update to version 3.1

commit 0c2251a42df5108b6d9ebe5fe1cf83d0bcdf660e
Author: Anthony Green <green@moxielogic.com>
Date:   Sun May 11 10:22:30 2014 -0400

    Support versions of git older than 1.8.5

commit 70c303cb88e23aaee91c87c56b108c50ab4f3c2f
Author: Anthony Green <green@moxielogic.com>
Date:   Sun May 11 09:56:40 2014 -0400

    Fix testsuite for GCC 4.9.0

commit 52b3457093ed19b2a7c5fcf243c4014c90ce6225
Author: Magnus Granberg <zorry@gentoo.org>
Date:   Sun May 11 09:55:28 2014 -0400

    Check /proc/self/status for PaX status.

commit 7ba4c5d72aa440a4b21fb57e999e67c5957761da
Author: Dominik Vogt <dominik.vogt@gmx.de>
Date:   Sun May 11 09:52:47 2014 -0400

    Use to get correct dir

commit 31e0d4ecff6dc2a6c75a066ee099b52a43f6ba27
Merge: 1c0e9a7 99909eb
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Apr 23 19:24:47 2014 -0400

    Merge pull request #119 from joshtriplett/fastcall-fastball
    
    src/x86/win32.S: Define ffi_closure_FASTCALL in the MASM section, too

commit 99909eb6184b62408d88b6b4e7ab38e84e6d0bf3
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Tue Apr 22 21:17:52 2014 -0700

    src/x86/win32.S: Define ffi_closure_FASTCALL in the MASM section, too

commit 1c0e9a7297ced15413c2d2d5d35f6c650c4b46c9
Merge: 93a24f2 d369522
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Apr 21 12:41:56 2014 -0400

    Merge pull request #101 from joshtriplett/fastcall-closures
    
    Support closures for fastcall

commit d36952273d4fafbda91ecc205fc0824f7cc65e70
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Apr 20 12:03:25 2014 -0700

    Support fastcall closures
    
    libffi on 32-bit x86 now supports closures for all supported ABIs.
    Thus, rewrite the last remaining duplicated-by-ABI test (closure_stdcall
    and closure_thiscall) to use the generic ABI_NUM/ABI_ATTR mechanism.

commit 93a24f216bcdd1018b976d697179c6d49004015a
Merge: dd11a04 2349fec
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Apr 12 19:38:07 2014 -0400

    Merge pull request #80 from ueno/devel
    
    Fix typo in doc

commit dd11a04061cb49ce1d702545693c24eb1267d648
Merge: 8fa2812 03ca880
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Apr 12 19:37:21 2014 -0400

    Merge pull request #86 from joshtriplett/testsuite-CC-CXX
    
    testsuite ignores CC parameter supplied to configure or make

commit 8fa2812355e685a42abf9a62fbc674d616b2edee
Merge: 8a58e6b 419503f
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Apr 12 19:32:08 2014 -0400

    Merge pull request #116 from frida/fix/darwin-aarch64-variadic
    
    Fix handling of variadic calls on Darwin/AArch64

commit 8a58e6b7805b736def197b8baf8e465a2a3f6913
Merge: 30b77c5 a539f7f
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Apr 12 19:30:18 2014 -0400

    Merge pull request #115 from frida/fix/darwin-aarch64-alignment
    
    Fix alignment of AArch64 assembler functions

commit 30b77c56f95c63ecd83399aafdbad7b07330f2fd
Merge: dc33cb3 3e2b84d
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Apr 12 19:29:13 2014 -0400

    Merge pull request #117 from frida/fix/windows-regression
    
    Fix Windows regression

commit 3e2b84d295531720917bf46afc532fc6d877e3ec
Author: Ole André Vadla Ravnås <ole.andre.ravnas@tillitech.com>
Date:   Sat Apr 12 01:04:04 2014 +0200

    Fix Windows regression
    
    Introduced by b5fed601948237037513a9b7f967c8fc6c9ff1f6.

commit 419503f409c321fe31ff59d963ef34bb913420d0
Author: Ole André Vadla Ravnås <ole.andre.ravnas@tillitech.com>
Date:   Sun Apr 6 20:54:13 2014 +0200

    Fix handling of variadic calls on Darwin/AArch64

commit a539f7ffd6783aa11353d13265520e453c565fb4
Author: Ole André Vadla Ravnås <ole.andre.ravnas@tillitech.com>
Date:   Sun Apr 6 20:53:02 2014 +0200

    Fix alignment of AArch64 assembler functions

commit dc33cb3c998da521a960385c1269c3aef552f69f
Merge: c860a99 b5fed60
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Apr 5 23:41:22 2014 -0400

    Merge pull request #114 from joshtriplett/bounce-on-a-tiny-trampoline
    
    Fix ABI on 32-bit non-Windows x86: go back to trampoline size 10

commit b5fed601948237037513a9b7f967c8fc6c9ff1f6
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sat Apr 5 17:33:42 2014 -0700

    Fix ABI on 32-bit non-Windows x86: go back to trampoline size 10
    
    The trampoline size is part of the ABI, so it cannot change.  Move the
    logic from the stdcall and thiscall trampolines to the functions they
    call, to reduce them both to 10 bytes.
    
    This drops the previously added support for raw THISCALL closures on
    non-Windows.  (Non-raw THISCALL closures still work.)

commit 03ca880081b22efab09ba72268270f83017d3d7b
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Thu Mar 27 08:44:34 2014 -0700

    README: Note the testsuite changes to respect $CC and $CXX

commit d74df8c5d8c6722ecb908da98c86cc8e2c755b84
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Thu Mar 27 00:44:12 2014 -0700

    README: Update Windows example to set both CC and CXX

commit 7d698125b1f05173f3656a89755a2eb58813b002
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Wed Mar 26 23:17:56 2014 -0700

    Use the proper C++ compiler to run C++ tests
    
    Running the C compiler with -shared-libgcc -lstdc++ does not work on
    non-GCC compilers.

commit fa5e88f170cb37c7b2b9bb015c8c5b854ffd8a3e
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Wed Mar 26 23:53:57 2014 -0700

    .travis.yml: Make the build command more readable by splitting at &&
    
    "script" can contain multiple commands to run in sequence.

commit 0c3824702d3d59d37f8c177d646303f546187683
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Wed Mar 26 14:51:32 2014 -0700

    Always set CC_FOR_TARGET for dejagnu, to make the testsuite respect $CC
    
    This fixes cross-compilation and compilation with CC="gcc -m32".

commit 9946a92af31b30cb7760150d1f8ca6c11b01aeea
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Wed Mar 26 20:18:58 2014 -0700

    Stop looking for expect and runtest above top_builddir
    
    Users wishing to test hand-compiled versions of expect and runtest can
    easily enough put them in their path or set EXPECT and RUNTEST
    themselves.

commit acb202325215058639234efb7af1f04c1c8a1f44
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Wed Mar 26 20:18:41 2014 -0700

    Stop setting an empty AM_RUNTESTFLAGS

commit c860a992fef5d7cd7bb0975b1632d17a9fafe007
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 25 17:02:51 2014 -0400

    Upgrade version to 3.1-rc1

commit 9837073e6203048a162a226798c5d252600219ed
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 25 16:24:14 2014 -0400

    Update copyright date and clean up README notes.

commit 18d3baa9f597b026675baa1b4e5a5eeef7577a08
Merge: afee537 f0c8a31
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 25 16:12:53 2014 -0400

    Merge pull request #108 from joshtriplett/freebsd
    
    [3.1 blocker] Fix FreeBSD support

commit afee53738a995e23bd2f89fd0f7b30b380566106
Merge: 7d24785 b2d610e
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 25 16:12:35 2014 -0400

    Merge pull request #106 from joshtriplett/darwin-award
    
    [3.1 blocker] Update OS X build system to include win32.S on 32-bit

commit 7d2478568ed9f03cbf57627f449a2d2cf4d1571c
Merge: beab5f3 56be47f
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 25 16:12:17 2014 -0400

    Merge pull request #110 from joshtriplett/w64
    
    Fix 64-bit Windows support

commit beab5f334d9ec5b8b91d1cc727d1029b40358e7e
Merge: 28fb197 ef5890e
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 25 16:07:47 2014 -0400

    Merge pull request #105 from joshtriplett/win32-relocations
    
    [3.1 blocker] win32.S needs to handle relocations/GOT

commit f0c8a31577172104049283f0a80c723084a5bd77
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Mon Mar 24 22:14:26 2014 -0700

    Compile win32.S on FreeBSD

commit b2d610e028b5ce48d1ad7e5d0debc9c321d891b2
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Fri Mar 21 11:10:13 2014 -0700

    Compile win32.S on 32-bit Darwin as well

commit be50b87a490e794362cb4a27ada2fbaab202adb8
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Mon Mar 24 21:44:13 2014 -0700

    Always use configure to detect whether global symbols need underscores
    
    64-bit Windows already used this check; make it universal, and use it in
    place of an ifdef on X86_WIN32, to handle non-Windows platforms that use
    the underscore, such as Darwin.

commit 56be47f87629e31afbcb0774aa65735f539ee972
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Mon Mar 24 21:24:53 2014 -0700

    Fix a warning on 64-bit Windows
    
    When sizeof(size_t) != sizeof(unsigned), adding a size_t to cif->bytes
    produces a "possible loss of data" warning.  However, the size_t in
    question refers to the size of a single parameter.  Use a cast to avoid
    the warning.

commit 48a8eda74aad8a21b6f26df5df08fe64c043d208
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Mon Mar 24 21:21:12 2014 -0700

    Avoid referencing undefined ABIs on 64-bit Windows builds
    
    64-bit Windows does not have FFI_STDCALL, FFI_THISCALL, or FFI_FASTCALL.

commit f0f4138f90345d7d67dfa6783a7e1c7cc30d3c6f
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sat Mar 22 10:00:53 2014 -0700

    win32.S: Add handling for position-independent code on Darwin
    
    Newer versions of Darwin generate the necessary stub functions
    automatically and just need a call instruction, but accomodating older
    versions as well requires adding the stub.

commit ef5890ebafb7cd2fbf9acf161edb55fe1382871c
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Fri Mar 21 11:01:39 2014 -0700

    win32.S: Use shifting for multiplication rather than repeated addition
    
    The jump table code added a register to itself twice to multiply by 4;
    shift the register left by 2 instead.

commit 4fca48901e7e4f53bf490ed22607b2d2d8f4bfcc
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Fri Mar 21 11:00:41 2014 -0700

    win32.S: Make the jump tables position-independent
    
    Now that non-Windows platforms include win32.S, it needs to support
    building as position-independent code.  This fixes build failures on
    target platforms that do not allow text relocations.

commit 2087dcf736274286f76c69d3988fb6d7cc4fd0f5
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Fri Mar 21 10:57:06 2014 -0700

    win32.S: Make calls to ffi_closure_SYSV_inner position-independent
    
    Now that non-Windows platforms include win32.S, it needs to support
    building as position-independent code.  This fixes one source of build
    failures on target platforms that do not allow text relocations.

commit 28fb197079cf1d11da4eef7c8c243ab05590c528
Merge: c697472 c3dd0a1
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Mar 18 12:19:36 2014 -0400

    Merge pull request #107 from rvandermeulen/msvcc
    
    Various compatibility fixes and improvements to msvcc.sh.

commit c3dd0a1a0245fc174361a70876e88ae24285f861
Author: Ryan VanderMeulen <ryanvm@gmail.com>
Date:   Tue Mar 18 12:09:45 2014 -0400

    Various compatibility fixes and improvements to msvcc.sh.
    
    * Don't try to mix incompatible optimization flags in debug builds.
    * Workaround ax_cc_maxopt.m4 not supporting MSVC and change -O3 to -O2.
    * Fix MSVC warning by properly passing linker flags to compiler.
    * Make msvcc.sh return 1 if invalid command line options are used rather than silently eating them.
    * Add more comments.

commit c697472fccfbb5b87b007c053cda9ef014b346b9
Merge: 83fd2bc e48918e
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Mar 17 00:32:42 2014 -0400

    Merge pull request #102 from joshtriplett/test-generic
    
    Add ABIs to the test matrix; unify many bits of the testsuite

commit e48918ecf876bc85d040fc50a232059c566553a8
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Mar 16 20:29:27 2014 -0700

    testsuite: Add ABIs to the test matrix; unify tests across ABIs
    
    This eliminates all the *_win32.c tests in favor of the tests they were
    branched from, and expands test coverage to run many more tests on
    stdcall, thiscall, and fastcall.
    
    This same mechanism also supports testing any other target that has
    multiple ABIs.

commit 4d4d368e5a55d9443c4c53b1b70d58ab6d8c941c
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Mar 16 17:02:05 2014 -0700

    testsuite: Replace ffitestcxx.h with ffitest.h
    
    ffitest.h contains a superset of the functionality of ffitestcxx.h;
    make the C++ tests include ffitest.h instead, and remove ffitestcxx.h.

commit 3f97cf3413c46caf2a79f32ac9cda4620972c2d7
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Mar 16 16:53:42 2014 -0700

    testsuite: Unify the C and C++ testsuites
    
    These two testsuites differ only in the source file glob and a couple of
    additional compiler options; unify the remaining bits.

commit 0d9cce8edb937bbe771a6cdd25f671edf06d2128
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Mar 16 16:22:58 2014 -0700

    testsuite: ffitest.h: Parenthesize the CHECK macro

commit 5695ec1444c5323e48fe4314f8c8f027625e67df
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Mar 16 16:04:58 2014 -0700

    testsuite: Factor out a function to run a matrix of tests
    
    This commons up code from libffi.call/call.exp and
    libffi.special/special.exp, unifies the optimization option matrix
    between the two, and makes it easier to add more axes to the matrix
    in the future.

commit dfdb02cc869855d3b68571e5f7aa77ae8c9d254a
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Mar 16 15:26:26 2014 -0700

    testsuite: Introduce a __THISCALL__ compiler-specific macro

commit 83fd2bce0456224483435d4b764063f4513fd464
Merge: 3658a07 06ff924
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 16 22:03:29 2014 -0400

    Merge pull request #99 from joshtriplett/gitignore
    
    .gitignore: Ignore more generated files

commit 3658a0700a50d37a2fdba04fd9d79ad2f706d9f5
Merge: d948d0a 46c5d3c
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 16 21:37:42 2014 -0400

    Merge pull request #100 from rvandermeulen/bug-756740
    
    Change double quotes in Makefile.am to single quotes.

commit 46c5d3c30fdc2b43c076ad955078d7c5f1e75b37
Author: Ryan VanderMeulen <ryanvm@gmail.com>
Date:   Sun Mar 16 21:16:08 2014 -0400

    Change double quotes in Makefile.am to single quotes.
    
    This was originally done in PR #84, except the change was made to Makefile.in instead of Makefile.am and was therefore reverted the next time the files were regenerated.

commit 06ff924215a2f9739efa2c059dc595bc4ec1c851
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Mar 16 16:19:46 2014 -0700

    .gitignore: Ignore more generated files
    
    The build process generates doc/libffi.info and fficonfig.h.in, so add
    them to .gitignore.

commit bad8948346e9b8813023a0cc78a3b6eb8d9c14c6
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Mar 16 15:16:18 2014 -0700

    testsuite: Introduce a __STDCALL__ compiler-specific macro
    
    Several tests want to use stdcall, which differs in syntax by compiler,
    so introduce a macro for it in ffitest.h.

commit 98a793fa36a4ab3ba24d059cb80a2891cdb940e1
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Mar 16 15:20:36 2014 -0700

    testsuite: Common up the ifdef blocks for compiler-specific macros

commit d948d0a729c934b0224749338a3ba0a2c8f51c45
Merge: b61b472 a86bd31
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 16 10:53:48 2014 -0400

    Merge pull request #98 from joshtriplett/unconfigure.host
    
    Merge configure.host into configure.ac

commit a86bd318e2424d879d784ee7b29d6536d7a17c18
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Mar 16 06:58:59 2014 -0700

    Merge configure.host into configure.ac
    
    configure.host only has a single entry, and shows no signs of needing
    more added.

commit b61b472bd0647006d6685238721002017f1d119c
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 16 09:45:55 2014 -0400

    Update version to 3.1-rc0.  Clean up README.

commit 7a64e7dbba54e6e9f69954adfb943be1856ff928
Merge: 11a5c5c eef2e02
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 16 09:39:08 2014 -0400

    Merge pull request #97 from joshtriplett/remove-more-generated-files
    
    Remove more generated files

commit 11a5c5c39f5861011f6c5ddf795da3a32b5f0082
Merge: 9a62a21 1c68c07
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 16 09:38:47 2014 -0400

    Merge pull request #96 from joshtriplett/sawing-changelogs
    
    Generate ChangeLog from git in make dist; remove it from version control

commit eef2e02a13d7d1c8145d47a64467f654406a3548
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Mar 16 06:26:03 2014 -0700

    doc: Remove autogenerated info file and stamp

commit 9fb403d3c5d9643e0f561cab6d4a07b1e54907ff
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Mar 16 06:25:52 2014 -0700

    fficonfig.h.in: Remove, configure generates it

commit 1c68c07217fda78a779778c1480fedef7a58d5b4
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Mar 16 06:11:58 2014 -0700

    Generate ChangeLog from git in make dist
    
    Archive the existing ChangeLog to ChangeLog.libffi-3.1

commit c65ed55e655711e008282edbdd82ce95d008b4f6
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Mar 16 05:52:00 2014 -0700

    ChangeLog.v1: Fix typo in explanatory header.

commit 9a62a21f5c3a8e1da463229f3170c8ab3031d920
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 16 09:03:57 2014 -0400

    Add missing ChangeLog entry.  Clean up some entries.

commit 9bc704c58cb7a049d867837e3a11e2e31886ec66
Merge: 694447a e892e58
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 16 08:41:00 2014 -0400

    Merge pull request #95 from joshtriplett/news
    
    README: Update news for 3.0.14

commit e892e581d1838a06c18c7ecd50ebd79915cff92b
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Mar 16 05:38:24 2014 -0700

    README: Update news for 3.0.14

commit 694447aa29deadd571efb4e9a26ee3f68ede1493
Merge: fdc87f3 45a6c21
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 16 08:32:05 2014 -0400

    Merge pull request #93 from joshtriplett/travis-dist
    
    Make Travis check "make dist"

commit 45a6c21efa944b520842e631dc54919b04884744
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Mar 16 05:29:08 2014 -0700

    .travis.yml: Test "make dist" too.

commit fdc87f3b2ea37b58a4a9ae6c35083f544909fe3c
Merge: 7412b83 e1911f7
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 16 08:05:51 2014 -0400

    Merge pull request #85 from joshtriplett/stdcall
    
    stdcall support on Linux

commit e1911f78df113ca58738b66089a070d4cf747de7
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Mar 16 03:25:53 2014 -0700

    Add support for stdcall, thiscall, and fastcall on non-Windows x86-32
    
    Linux supports the stdcall calling convention, either via functions
    explicitly declared with the stdcall attribute, or via code compiled
    with -mrtd which effectively makes stdcall the default.
    
    This introduces FFI_STDCALL, FFI_THISCALL, and FFI_FASTCALL on
    non-Windows x86-32 platforms, as non-default calling conventions.

commit 7412b838d543aae4fa925862bd5702d3dacbc29a
Merge: c0cc5fd 9531d05
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 16 07:58:16 2014 -0400

    Merge pull request #90 from joshtriplett/win32-unifdef
    
    prep_cif.c: Remove unnecessary ifdef for X86_WIN32

commit c0cc5fdaa237b67e86f22d2f6e13f3b42d9aae33
Merge: 98b5296 b3a5da0
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 16 07:57:59 2014 -0400

    Merge pull request #89 from joshtriplett/travis32
    
    .travis.yml: Test on both 32-bit and 64-bit

commit 9531d05f64c2a674e0197158ffad68d69f177bd0
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Mar 16 01:50:02 2014 -0700

    prep_cif.c: Remove unnecessary ifdef for X86_WIN32
    
    ffi_prep_cif_core had a special case for X86_WIN32, checking for
    FFI_THISCALL in addition to the FFI_FIRST_ABI-to-FFI_LAST_ABI range
    before returning FFI_BAD_ABI.  However, on X86_WIN32, FFI_THISCALL
    already falls in that range, making the special case unnecessary.
    Remove it.

commit b3a5da068abd2f2983d9e67adbf41b0e0f34e37f
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sat Mar 15 23:27:56 2014 -0700

    .travis.yml: Test on both 32-bit and 64-bit

commit 98b52960485a261399f081915f36063de3854a5f
Merge: 134ce4c f6dd184
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 16 07:51:33 2014 -0400

    Merge pull request #94 from joshtriplett/esp-extra-stackery-perception
    
    ChangeLog: Document testsuite changes to remove fragile stack pointer checks

commit f6dd1845434dd53e22129becdfa092c082df307c
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Mar 16 04:49:36 2014 -0700

    ChangeLog: Document testsuite changes to remove fragile stack pointer checks

commit 134ce4c0266bf994f07518fc534de53f1d3c8de8
Merge: 2680e9e 9c27932
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 16 07:47:17 2014 -0400

    Merge pull request #91 from joshtriplett/esp-extra-stackery-perception
    
    testsuite: Remove fragile stack pointer checks

commit 9c279328ee12fc869adff63ca81f1230977bd42b
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Mar 16 02:31:19 2014 -0700

    testsuite: Remove fragile stack pointer checks
    
    testsuite/libffi.call/closure_stdcall.c and
    testsuite/libffi.call/closure_thiscall.c include inline assembly to save
    the stack pointer before and after the call, and compare the values.
    However, compilers can and do leave the stack in different states for
    these two pieces of inline assembly, such as by saving a temporary value
    on the stack across the call; observed with gcc -Os, and verified as
    spurious through careful inspection of disassembly.

commit 2680e9ea9b4c87ea8042a61e551bd667493d4bd3
Merge: 071eab3 82f8cb2
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 16 07:44:08 2014 -0400

    Merge pull request #88 from joshtriplett/such-precision-many-fail-wow
    
    testsuite/libffi.call/many.c: Avoid spurious failure due to excess precision

commit 82f8cb24a1d976db35ae31a4b86cec8926da327d
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Mar 16 04:27:32 2014 -0700

    ChangeLog: Document many.c and many_win32.c changes to avoid spurious failures

commit 88d562a8b5912e99306063fe3bc289bab6ca6ebe
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sat Mar 15 22:08:19 2014 -0700

    testsuite/libffi.call/many_win32.c: Avoid spurious failure due to excess precision
    
    The test case testsuite/libffi.call/many_win32.c can spuriously fail due
    to excess floating-point precision.  Instrumenting it with some printf
    calls shows differences well above FLT_EPSILON.  (Note when
    instrumenting it that multiple computations of the difference, such as
    one in a print and another in the conditional, may produce different
    results.)
    
    Rather than complicating the test suite with architecture-specific flags
    to avoid excess precision, just simplify the floating-point computation
    to avoid a dependency on potential excess precision.

commit c00a49ecd165b2d06c1c9b249d212dc843fa116f
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sat Mar 15 22:08:19 2014 -0700

    testsuite/libffi.call/many.c: Avoid spurious failure due to excess precision
    
    The test case testsuite/libffi.call/many.c can spuriously fail due to
    excess floating-point precision.  Instrumenting it with some printf
    calls shows differences well above FLT_EPSILON.  (Note when
    instrumenting it that multiple computations of the difference, such as
    one in a print and another in the conditional, may produce different
    results.)
    
    Rather than complicating the test suite with architecture-specific flags
    to avoid excess precision, just simplify the floating-point computation
    to avoid a dependency on potential excess precision.

commit 071eab32a7f9fbbef46c0d8f37d9985bc9cceb37
Merge: 2228c7a 2f44952
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 16 07:36:52 2014 -0400

    Merge pull request #92 from joshtriplett/autogen
    
    Re-add libtool-ldflags

commit 2f44952c95765c1486fad66f57235f8d459a9748
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sun Mar 16 04:35:12 2014 -0700

    Re-add libtool-ldflags

commit 2228c7ab190f3c529b9018495467b841fa21cba2
Merge: 76d19d0 35634db
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 16 07:25:18 2014 -0400

    Merge pull request #87 from joshtriplett/autogen
    
    Remove autogenerated files from the repository

commit 35634dbceaac0a1544f7385addc01d21ef1ef6a8
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Sat Mar 15 18:11:16 2014 -0700

    Remove autogenerated files from the repository
    
    Add an autogen.sh to regenerate them.

commit 76d19d004e36e99d261ee78261e2f52cea5e4ab1
Merge: c86d9b6 a1a6f71
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Mar 14 16:54:31 2014 -0400

    Ensure the linker supports @unwind sections in libffi.

commit c86d9b6cc6e16ee262844a33b40441374400758c
Merge: 4efb7db f8cdf11
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Mar 14 16:51:20 2014 -0400

    Fix merge

commit 4efb7dbfd9427c478a948cd0d464210123db8de8
Merge: 634a475 18eb81d
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Mar 14 16:47:57 2014 -0400

    Merge pull request #81 from rvandermeulen/bug-756740
    
    Allow building for mipsel with Android NDK r8.

commit a1a6f71bfe4199293043b2e4cfb4c8d3cb1112f9
Author: Ryan VanderMeulen <ryanvm@gmail.com>
Date:   Mon Mar 10 15:12:47 2014 -0400

    Remove stray hunk that shouldn't have been included in this patch.

commit f8cdf11467181f2a9a6b7e748167569aa58e3a81
Author: Ryan VanderMeulen <ryanvm@gmail.com>
Date:   Mon Mar 10 15:04:58 2014 -0400

    Replace double quotes with single quotes in Makefile.in to improve compatibility between some versions of MSYS and gmake. From Mozilla bug 943728.
    https://bugzilla.mozilla.org/show_bug.cgi?id=943728

commit dfa3738732e1bc3a7f4130395ae4bab55fcebb99
Author: Ryan VanderMeulen <ryanvm@gmail.com>
Date:   Mon Mar 10 14:53:48 2014 -0400

    Ensure the linker supports @unwind sections in libffi. From Mozilla bug 756740.
    https://bugzilla.mozilla.org/show_bug.cgi?id=778414
    
    Also tracked as issue #42.
    https://github.com/atgreen/libffi/issues/42

commit 18eb81d032f29d645d0498ba92bddfd651f009ae
Author: Ryan VanderMeulen <ryanvm@gmail.com>
Date:   Mon Mar 10 14:43:37 2014 -0400

    Allow building for mipsel with Android NDK r8. From Mozilla bug 756740.
    https://bugzilla.mozilla.org/show_bug.cgi?id=756740

commit 2349fec9a818fb52fd2f294bcbc7b3156cd113de
Author: Daiki Ueno <ueno@gnu.org>
Date:   Wed Mar 5 17:53:02 2014 +0900

    Fix typo in doc

commit 634a475eaf1bee31c09f7d519e31c13b64cd24df
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Mar 1 18:37:29 2014 -0500

    Update Makefile for new darwin scripts

commit c7b67e874bb89859f9a07d1cf9606052b6c0dcc1
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Mar 1 18:34:18 2014 -0500

    Add README note

commit a04e30ba3dc303133d459c1ac273ceefe4d49b32
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 28 17:20:59 2014 -0500

    Add missing -DFFI_DEBUG flag

commit 934dc1b5c8d6a9e727bedc72342831eb7d62c35f
Merge: 11d7aa9 67fbef3
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 28 01:10:17 2014 -0500

    Merge branch 'master' of github.com:/atgreen/libffi

commit 11d7aa9d7a4bbe642944edc0f07cf96db9b270b6
Merge: b40aeda 3b44d41
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 28 01:06:48 2014 -0500

    Merge pull request #46 from makotokato/android-clang
    
    Fix build failure when using clang for Android

commit 67fbef3b56ff0ef88f9b1a7fe48cb77222fa6cec
Merge: b40aeda 3b44d41
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 28 01:06:48 2014 -0500

    Merge pull request #46 from makotokato/android-clang
    
    Fix build failure when using clang for Android

commit b40aeda31a74d95a37c723b6243aabac466e67c4
Merge: 20698ab 53ceaf1
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 28 01:01:29 2014 -0500

    Merge branch 'master' of github.com:/atgreen/libffi

commit 53ceaf14c5eeb16ba09745f0ca87cca367d41a90
Merge: 860fe66 cc9b518
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 28 01:01:02 2014 -0500

    Merge pull request #40 from wojdyr/master
    
    Correct the -L flag in libffi.pc.in

commit 20698abc6a00092fd7fd3e434a3a29dc0f048f1e
Merge: 64bd069 1a0b01e
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 28 00:56:27 2014 -0500

    Merge pull request #66 from ppizarro/master
    
    BlackFin fixes - Fatal error when calling a function defined in a shared library from within the function called by FFI

commit 860fe6646f5ae603e99a8d1d722ddddba8b75769
Merge: 64bd069 1a0b01e
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 28 00:56:27 2014 -0500

    Merge pull request #66 from ppizarro/master
    
    BlackFin fixes - Fatal error when calling a function defined in a shared library from within the function called by FFI

commit 64bd06990a7accf72271516a2110b86cdccd8df4
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 28 00:52:56 2014 -0500

    Add ChangeLog entry for Josh's change

commit edf29c5169b06fcfc241445e152e325bc3c50e0e
Merge: 33c9954 3998d26
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 28 00:50:25 2014 -0500

    Merge pull request #75 from joshtriplett/longdouble
    
    Fix build error on x86 without distinct long double

commit 33c9954f2eec539011a0f93270aaf013318837ae
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 28 00:38:41 2014 -0500

    Rebuilt with new libtool

commit 926b6989fbd08488b9105943293353d45ac527e0
Merge: 5a88c85 cc82051
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 28 00:26:57 2014 -0500

    Merge branch 'master' of github.com:/atgreen/libffi
    
    Conflicts:
            ChangeLog

commit 5a88c85fde304052bed1581ed0b6452ac2c68838
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 28 00:23:04 2014 -0500

    Fix spelling errors

commit cc82051c7e80cea772c4b72da026eb7e68d598fc
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 28 00:23:04 2014 -0500

    Fix spelling errors

commit 001aaf4b1b56349596bb6f6b5c1613dcbbd84ea8
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 28 00:20:17 2014 -0500

    When no VFP arguments are present the IP register is used
    uninitialized. Initialize it to the value of FP.
    
    This fixes a number of testsuite failures when configured for
    armv7l-unknown-linux-gnueabihf

commit 49f7729c3ce697c12408c42ccb29cdf4eb66bb85
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 28 00:17:16 2014 -0500

    aarch64 fix

commit 447483d51c6aa9df7116f346a73fc1cf795f4c2b
Merge: 51377bd b4df9cf
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Feb 27 15:42:41 2014 -0500

    Fix ChangeLog merge

commit 3998d2604b5c0d45a098ff3119a9fd9710ef429d
Author: Josh Triplett <josh@joshtriplett.org>
Date:   Mon Feb 17 11:20:33 2014 -0800

    Fix build error on x86 without distinct long double
    
    src/x86/ffi64.c: In function 'classify_argument':
    src/x86/ffi64.c:205:5: error: duplicate case value
         case FFI_TYPE_LONGDOUBLE:
         ^
    src/x86/ffi64.c:202:5: error: previously used here
         case FFI_TYPE_DOUBLE:
         ^

commit 51377bda9aed0b2c1309c818460cab9d9ab3d46e
Merge: f08da54 40927bd
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Feb 15 08:06:29 2014 -0500

    Merge pull request #72 from heiher/devel
    
    MIPS N32: Fix call floating point va function

commit f08da5465463e60a28f5e921f23ebf2ba984c148
Merge: 3dc3f32 fa5f25c
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Feb 15 08:06:11 2014 -0500

    Merge pull request #68 from zeldin/master
    
    Linux/ppc64: Remove assumption on contents of r11 in closure

commit 40927bd3e1e7c6007025ba10854fd8a0664e47df
Author: Heiher <r@hev.cc>
Date:   Tue Jan 21 23:18:27 2014 +0800

    Fix call floating point va function
    
    I'm not sure floating-point arguments in GPR or FPR before calling
    variable number arguments function. so, load all arguments to GPR and
    FPR.

commit b4df9cf9cc4a9a9401a53fd6bea1f3c2c283b97b
Author: Zachary Waldowski <zach@waldowski.me>
Date:   Wed Feb 5 14:22:52 2014 -0500

    AArch64: Fix void fall-through case when assertions are enabled

commit f466aad0d91a117e42571d1d6fb434fa0433c930
Author: Zachary Waldowski <zach@waldowski.me>
Date:   Tue Jan 21 16:38:31 2014 -0500

    AArch64: Fix missing semicolons when assertions are enabled

commit 7ea677733bd98917241852b8901a6b7580728895
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 30 20:58:31 2013 -0500

    Remove build-ios from Makefile
    
    Conflicts:
            ChangeLog

commit 6ae046cc59c12b2cd40158d6bcb96f4a59886159
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 30 21:06:51 2013 -0500

    Mention Aarch64 on iOS

commit bfc06b3fdb32abe90ce0749aedfec649df85a7ef
Author: Zachary Waldowski <zach@waldowski.me>
Date:   Mon Dec 30 17:36:39 2013 -0500

    Update ChangeLog

commit 0a0f12ce1f7be81006b08a3c81a636926d283a9b
Author: Zachary Waldowski <zach@waldowski.me>
Date:   Thu Jan 9 13:50:17 2014 -0500

    AArch64: Remove duplicitous element_count call.
    
    This inhibits an analyzer warning by Clang.

commit 4330fdcd92e67c816288d64ab230237065768206
Author: Zachary Waldowski <zach@waldowski.me>
Date:   Thu Jan 9 13:53:30 2014 -0500

    Darwin/aarch64: Respect iOS ABI re: stack argument alignment

commit 0a333d6c3973935d4fe02aae76b10e39d3c88e07
Author: Zachary Waldowski <zach@waldowski.me>
Date:   Thu Jan 9 14:03:29 2014 -0500

    Darwin/aarch64: Fix size_t assumptions

commit 2c18e3c76aad1b426617db05a4384e7c3a920176
Author: Zachary Waldowski <zach@waldowski.me>
Date:   Mon Dec 30 16:14:02 2013 -0500

    Darwin/aarch64: Fix "shadows declaration" warnings

commit 1b8a8e20e344f3c55495ab6eb46bd14e843d4b3e
Author: Zachary Waldowski <zach@waldowski.me>
Date:   Thu Jan 9 13:55:21 2014 -0500

    Darwin/aarch64: Use Clang cache invalidation builtin

commit 6030cdcae776f8fb5876a53168f7d1e75d28a242
Author: Zachary Waldowski <zach@waldowski.me>
Date:   Mon Dec 30 15:45:51 2013 -0500

    Darwin/aarch64: Account for long double being equal to double

commit 5658b0892683d2e24e4d5842978c184a7ad33858
Author: Zachary Waldowski <zach@waldowski.me>
Date:   Mon Dec 30 16:33:47 2013 -0500

    Darwin/aarch64: Use CNAME, restrict .size like ARM

commit 07175780802acec5dc49fdedd6d20a62409a6707
Author: Zachary Waldowski <zach@waldowski.me>
Date:   Mon Dec 30 17:48:22 2013 -0500

    Darwin/aarch64: Fix invalid reference in assembly

commit 9da28b44277fea3aeb827c35dd63d609d2524a8b
Author: Zachary Waldowski <zach@waldowski.me>
Date:   Mon Dec 30 16:23:21 2013 -0500

    Darwin/x86_64: Fix 64-bit type shortening warnings

commit 821d398f08bd1d540a5b235507812ffeee49b580
Author: Zachary Waldowski <zach@waldowski.me>
Date:   Thu Jan 9 13:15:06 2014 -0500

    Darwin: Merge build scripts, redo project, incl. arm64

commit 6eff9ff9e72463b9783be2514f944b6f05692054
Author: Zachary Waldowski <zach@waldowski.me>
Date:   Mon Dec 30 17:48:10 2013 -0500

    Darwin/iOS: Improve unified syntax use for LLVM

commit ba0ea99c82aadd5957386a031e3122011bd36d52
Author: Zachary Waldowski <zach@waldowski.me>
Date:   Mon Dec 30 15:27:44 2013 -0500

    Fix dlmalloc warnings due to set_segment_flags, sizeof(size_t)

commit 994be3a5c1d0d17b19103396103e128517fd62f9
Author: Zachary Waldowski <zach@waldowski.me>
Date:   Mon Dec 30 15:27:14 2013 -0500

    Darwin/iOS: Fix mis-typing of vfp_reg_free

commit a8e0a835ab1f62d03ad6391760e3e8b7732d24f8
Author: Zachary Waldowski <zach@waldowski.me>
Date:   Mon Dec 30 15:26:20 2013 -0500

    Darwin/ARM: Assert on NULL dereference
    
    This inhibits an analyzer warning by Clang on all platforms.

commit 13675341581c489ed9df8ba390c8e08a732decb2
Author: Zachary Waldowski <zach@waldowski.me>
Date:   Thu Jan 9 13:42:08 2014 -0500

    Darwin/i386: Inhibit Clang previous prototype warnings

commit 66469c381e2e2cc96e7d409266dea0ffe177eeca
Author: Zachary Waldowski <zach@waldowski.me>
Date:   Thu Jan 9 13:41:45 2014 -0500

    Darwin/ARM: Inhibit Clang previous prototype warnings

commit 5bfe62a00d2d659eec9f19b39802b6e69844fc27
Author: Zachary Waldowski <zach@waldowski.me>
Date:   Thu Jan 9 13:41:27 2014 -0500

    Darwin/AArch64: Inhibit Clang previous prototype warnings

commit fa5f25c20f76a6ef5e950a7ccbce826672c8a620
Author: Marcus Comstedt <marcus@mc.pp.se>
Date:   Sat Jan 4 19:00:08 2014 +0100

    Linux/ppc64: Remove assumption on contents of r11 in closure

commit 1a0b01e171e9c750437cef2f18917f5a6e32c498
Author: Paulo Pizarro <paulo.pizarro@gmail.com>
Date:   Thu Jan 2 16:17:59 2014 -0200

    When the function called by the ffi called a function defined in a shared library generate a fatal error
    The correction was to take into consideration the GOT.

commit 3dc3f32c35db5ab995a835225f6815369735ceb7
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Dec 5 16:23:25 2013 -0500

    Undo iOS ARM64 changes.

commit 356b2cbc304bfe5bdc28b8d1c68d1ff084e9ec37
Merge: 484a758 07345a3
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 30 22:38:13 2013 -0500

    Merge branch 'master' of github.com:/atgreen/libffi

commit 484a7584260e2fbb399ce90083046834271bf9ff
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 30 21:06:51 2013 -0500

    Mention Aarch64 on iOS

commit 07345a30ec0a2fa45a7c363d301f57723690cfa0
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 30 21:06:51 2013 -0500

    Mention Aarch64 on iOS

commit d4b931c1b872378c35f12ddbb9a6d55e7f17c65e
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 30 20:58:31 2013 -0500

    Remove build-ios from Makefile

commit dfbf236d70fc1ec68e6ff193584a154353508e2f
Merge: 852ac3b bb9740e
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 30 20:54:54 2013 -0500

    Merge branch 'master' of github.com:/atgreen/libffi
    Add ChangeLog entry.

commit bb9740e545205f93a525c77aa6d1cbf4ca9371f3
Merge: ac75368 4d701e0
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 30 17:54:39 2013 -0800

    Merge pull request #60 from zwaldowski/ios-redo
    
    Mac/iOS support, including aarch64 port

commit 4d701e03faa475a5eb3b54b90046114a1e27b813
Author: Zachary Waldowski <zwaldowski@gmail.com>
Date:   Sat Nov 30 13:25:27 2013 -0500

    Darwin: Properly export headers from Xcode project

commit 022f12eb9ad2264e838fa5fb453733f5177888f4
Author: Zachary Waldowski <zwaldowski@gmail.com>
Date:   Sat Nov 30 12:21:38 2013 -0500

    Darwin: Freshen gen scripts, remove old build-ios.sh

commit e820fe2025d7ad3df7584407946dfaad2af69599
Author: Zachary Waldowski <zwaldowski@gmail.com>
Date:   Sat Nov 30 12:03:51 2013 -0500

    Darwin/iOS: Include x86_64+aarch64 pieces in library

commit 0278284e470ec91db7cdc15ac3dcd64683305848
Author: Zachary Waldowski <zwaldowski@gmail.com>
Date:   Sat Nov 30 03:03:37 2013 -0500

    Darwin/aarch64: size_t assumptions

commit 9775446b6441c91cd9059215c106aa3bcf949767
Author: Zachary Waldowski <zwaldowski@gmail.com>
Date:   Sat Nov 30 02:39:34 2013 -0500

    Darwin/aarch64: Fix “shadows declaration” warnings

commit 4260badc37705d3618e774dfe61184ac709881c1
Author: Zachary Waldowski <zwaldowski@gmail.com>
Date:   Sat Nov 30 02:08:14 2013 -0500

    Darwin/aarch64: Use Clang cache invalidation builtin

commit 9fa7998d5f9250908cbf12a671479852ebadf9d1
Author: Zachary Waldowski <zwaldowski@gmail.com>
Date:   Sat Nov 30 02:07:48 2013 -0500

    Darwin/aarch64: Inhibit Xcode warning

commit 0e832048a93830575b0976406444e134e649a4f7
Author: Zachary Waldowski <zwaldowski@gmail.com>
Date:   Sat Nov 30 02:07:34 2013 -0500

    Darwin/aarch64: double == long double

commit 602dc22d76931092610234cf063f9f1b8dbc1a51
Author: Zachary Waldowski <zwaldowski@gmail.com>
Date:   Sat Nov 30 02:06:00 2013 -0500

    Darwin/iOS prep script: try and compile for arm64

commit b513dfe79de4725e8a717325a9e3b5b9f69f63dc
Author: Zachary Waldowski <zwaldowski@gmail.com>
Date:   Sat Nov 30 02:05:22 2013 -0500

    Darwin/aarch64: Restrict .size to ELF like arm32.

commit bc978099bf2812de755c076b67ef9c2547607572
Author: Zachary Waldowski <zwaldowski@gmail.com>
Date:   Sat Nov 30 02:04:57 2013 -0500

    Darwin/aarch64: Potentially(?) fix compile error

commit d6bb9314467c6e0683156559d23ca341c43fa3c8
Author: Zachary Waldowski <zwaldowski@gmail.com>
Date:   Sat Nov 30 02:04:22 2013 -0500

    Darwin/aarch64: Use CNAME refs

commit 33c46ce5680eea28d3437c8771ec1d137e226b45
Author: Zachary Waldowski <zwaldowski@gmail.com>
Date:   Sat Nov 30 04:13:42 2013 -0500

    Darwin/Mac: Fix 64/32 shortening warnings

commit 0612081e6c161d9d820742f995975d35da2adbc2
Author: Zachary Waldowski <zwaldowski@gmail.com>
Date:   Sat Nov 30 03:03:00 2013 -0500

    Darwin: Misc size_t warnings

commit 6a6247d179ec3859311c2d8775841b884f309f66
Author: Zachary Waldowski <zwaldowski@gmail.com>
Date:   Sat Nov 30 02:55:48 2013 -0500

    Darwin: Fix dlmalloc warnings due to sizeof(size_t)

commit 4d60d9e1e32de6166ffd63bbe9ce54cf961c78fc
Author: Zachary Waldowski <zwaldowski@gmail.com>
Date:   Sat Nov 30 04:09:30 2013 -0500

    Darwin: Rebuild Xcode project

commit cb719a5c1c2eb391d6a5f5e02484ba4aa990a51b
Author: Zachary Waldowski <zwaldowski@gmail.com>
Date:   Sat Nov 30 04:09:18 2013 -0500

    Darwin/iOS: Fix LLVM 3.3 warning re: memcpy.

commit 21bde92c9abb378f9c456a9d95e6f9b99ef8c920
Author: Zachary Waldowski <zwaldowski@gmail.com>
Date:   Sat Nov 30 03:43:42 2013 -0500

    Darwin: Clean up, modernize generator scripts

commit fd54eab74cef7891e4acaaafb71e783142ecb69e
Author: Zachary Waldowski <zwaldowski@gmail.com>
Date:   Sat Nov 30 03:38:02 2013 -0500

    Darwin/Mac: Also exclude OS X generated source

commit 953b6f14c655141f9e7d82550a312c3eeb961091
Author: Zachary Waldowski <zwaldowski@gmail.com>
Date:   Tue Apr 24 11:16:20 2012 -0400

    Darwin/iOS: More unified syntax support w/ Clang.
    
    Signed-off-by: Zachary Waldowski <zwaldowski@gmail.com>

commit c713a55379481c339877f2e0003d97cb8d9ed80e
Author: Zachary Waldowski <zwaldowski@gmail.com>
Date:   Tue Apr 24 10:25:29 2012 -0400

    Darwin/iOS: Simplify RETLDM arguments for LLVM 3.1
    
    Signed-off-by: Zachary Waldowski <zwaldowski@gmail.com>

commit 16ba1b80028db5cb71cf86e5f79f5e48317f83c8
Author: Zachary Waldowski <zwaldowski@gmail.com>
Date:   Wed Apr 11 23:26:04 2012 -0400

    Darwin: Silence Clang warnings.

commit 852ac3bd302d6ed97b1ef65f4cbed69c258a48df
Merge: ab79d6e ac75368
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Nov 21 21:25:44 2013 -0500

    Merge branch 'master' of github.com:/atgreen/libffi
    
    Conflicts:
            ChangeLog

commit ab79d6e21992dd86139ba07530ff888833b78a04
Author: Alan Modra <amodra@gmail.com>
Date:   Thu Nov 21 06:12:35 2013 -0500

    This separates the 32-bit sysv/linux/bsd code from the 64-bit linux
    code, and makes it possible to link code compiled with different
    options to those used to compile libffi.  For example, a
    -mlong-double-128 libffi can be used with -mlong-double-64 code.
    
    Using the return value area as a place to pass parameters wasn't such
    a good idea, causing a failure of cls_ulonglong.c.  I didn't see this
    when running the mainline gcc libffi testsuite because that version of
    the test is inferior to the upstreamm libffi test.
    
    Using NUM_FPR_ARG_REGISTERS rather than NUM_FPR_ARG_REGISTERS64 meant
    that a parameter save area could be allocated before it was strictly
    necessary.  Wrong but harmless.  Found when splitting apart ffi.c
    into 32-bit and 64-bit support.

commit ac7536889334d4be50709006d7e23536364d7891
Author: Alan Modra <amodra@gmail.com>
Date:   Thu Nov 21 06:12:35 2013 -0500

    This separates the 32-bit sysv/linux/bsd code from the 64-bit linux
    code, and makes it possible to link code compiled with different
    options to those used to compile libffi.  For example, a
    -mlong-double-128 libffi can be used with -mlong-double-64 code.
    
    Using the return value area as a place to pass parameters wasn't such
    a good idea, causing a failure of cls_ulonglong.c.  I didn't see this
    when running the mainline gcc libffi testsuite because that version of
    the test is inferior to the upstreamm libffi test.
    
    Using NUM_FPR_ARG_REGISTERS rather than NUM_FPR_ARG_REGISTERS64 meant
    that a parameter save area could be allocated before it was strictly
    necessary.  Wrong but harmless.  Found when splitting apart ffi.c
    into 32-bit and 64-bit support.

commit 69df91cfb4fa6bcb644350a80bff970f27478a6a
Merge: 2f45082 aa1f62c
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Nov 18 06:34:04 2013 -0800

    Merge pull request #59 from iains/powerpc-darwin-unwind-fix
    
    Fix PowerPC Darwin FDE encodings to use pcrel correctly.  Modernise the picbase labels.

commit aa1f62c0a093c30325dff1d4d2b6b4b22eb96929
Author: Iain Sandoe <iain@codesourcery.com>
Date:   Mon Nov 18 13:11:56 2013 +0000

    Fix PowerPC Darwin FDE encodings to use pcrel correctly.  Modernise the picbase labels.

commit 2f450822a8698ba88441c56d152c7dc8924b127f
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Nov 18 06:52:29 2013 -0500

    Clean up code to appease modern GCC compiler.

commit 16d56c51aded374730920a4acde76ff3d2860ae1
Author: Alan Modra <amodra@gmail.com>
Date:   Mon Nov 18 06:36:03 2013 -0500

    An #endif in the wrong place would cause compile failure on powerpcle.
    Using bl instead of b doesn't cause runtime failures as you might think,
    but does mess the processor branch prediction.

commit 34f878a5ef28663f6b1d7fd26fb099429ea1579e
Merge: 83f65b6 1fd0457
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 16 06:57:54 2013 -0500

    Merge branch 'master' of github.com:/atgreen/libffi
    
    Conflicts:
            ChangeLog
            src/powerpc/ffi.c

commit 83f65b63d9764a9cc7688fc5cda5ee2bd23faf54
Author: Alan Modra <amodra@gmail.com>
Date:   Sat Nov 16 06:53:50 2013 -0500

    Finally, this adds _CALL_ELF == 2 support.  ELFv1 objects can't be
    linked with ELFv2 objects, so this is one case where preprocessor
    tests in ffi.c are fine.  Also, there is no need to define a new
    FFI_ELFv2 or somesuch value in enum ffi_abi.  FFI_LINUX64 will happily
    serve both ABIs.

commit 1fd045784cac874b5d76b7fa931f67209a8280d3
Author: Alan Modra <amodra@gmail.com>
Date:   Sat Nov 16 06:53:50 2013 -0500

    Finally, this adds _CALL_ELF == 2 support.  ELFv1 objects can't be
    linked with ELFv2 objects, so this is one case where preprocessor
    tests in ffi.c are fine.  Also, there is no need to define a new
    FFI_ELFv2 or somesuch value in enum ffi_abi.  FFI_LINUX64 will happily
    serve both ABIs.

commit 362851379a49ce07d3e36e82c4e5c7b6cc16a352
Author: Alan Modra <amodra@gmail.com>
Date:   Sat Nov 16 06:52:43 2013 -0500

    Andreas' 2013-02-08 change reverted some breakage for struct return
    values from 2011-11-12, but in so doing reintroduced string
    instructions to sysv.S that are not supported on all powerpc variants.
    This patch properly copies the bounce buffer to destination in C code
    rather than in asm.
    
    I have tested this on powerpc64-linux, powerpc-linux and
    powerpc-freebsd.  Well, the last on powerpc-linux by lying to
    configure with
    
    CC="gcc -m32 -msvr4-struct-return -mlong-double-64" \
    CXX="g++ -m32 -msvr4-struct-return -mlong-double-64" \
    /src/libffi-current/configure --build=powerpc-freebsd
    
    and then
    
    make && make CC="gcc -m32" CXX="g++ -m32" \
    RUNTESTFLAGS=--target_board=unix/-m32/-msvr4-struct-return/-mlong-double-64\
     check

commit 1c06515d927d9de1582438d4eb5953890e79c5c7
Author: Alan Modra <amodra@gmail.com>
Date:   Sat Nov 16 06:41:36 2013 -0500

    The powerpc64 ABIs align structs passed by value, a fact ignored by
    gcc for quite some time.  Since gcc now does the correct alignment,
    libffi needs to follow suit.  This ought to be made selectable via
    a new abi value, and the #ifdefs removed from ffi.c along with many
    other #ifdefs present there and in assembly.  I'll do that with a
    followup patch sometime.
    
    This is a revised version of
    https://sourceware.org/ml/libffi-discuss/2013/msg00162.html

commit a97cf1fae575d8bfd5259c5c422025ad43911326
Author: Alan Modra <amodra@gmail.com>
Date:   Sat Nov 16 06:40:13 2013 -0500

    This patch prepares for ELFv2, where sizes of these areas change.  It
    also makes some minor changes to improve code efficiency.

commit 164283f4ac5972ce2ab5e015cc2ab1014c23276c
Author: Alan Modra <amodra@gmail.com>
Date:   Sat Nov 16 06:38:55 2013 -0500

    The powerpc64 support opted to pass floating point values both in the
    fpr area and the parameter save area, necessary when the backend
    doesn't know if a function argument corresponds to the ellipsis
    arguments of a variadic function.  This patch adds powerpc support for
    variadic functions, and changes the code to only pass fp in the ABI
    mandated area.  ELFv2 needs this change since the parameter save area
    may not exist there.
    
    This also fixes two faulty tests that used a non-variadic function
    cast to call a variadic function, and spuriously reasoned that this is
    somehow necessary for static functions..

commit 31257b3189f81a199bc2902c22bc5f2d7c54ccde
Author: Andrew Haley <aph@redhat.com>
Date:   Sat Nov 16 06:35:51 2013 -0500

    Fix sample closure code

commit db0ace3a38496af73eae3df02ef353736d16909f
Author: Andrew Haley <aph@redhat.com>
Date:   Sat Nov 16 06:29:25 2013 -0500

    Fix broken test cases

commit de10f5039ed7a53382ddcc95c368d03e535edb98
Merge: 58c2577 f3657da
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Nov 14 10:56:29 2013 -0500

    Merge branch 'master' of https://github.com/bivab/libffi
    
    Conflicts:
            ChangeLog

commit f3657da278dd63afcdd8762894a9bdaea8ef028a
Author: David Schneider <david.schneider@bivab.de>
Date:   Thu Nov 14 13:02:16 2013 +0100

    update Changelog

commit 58c2577a3ff80e7416ef0434769e2af23365719c
Author: Alan Modra <amodra@gmail.com>
Date:   Wed Nov 13 16:55:36 2013 -0500

    This enshrines the current testsuite practice of using ffi_arg for
    returned values.  It would be reasonable and logical to use the actual
    return argument type as passed to ffi_prep_cif, but this would mean
    changing a large number of tests that use ffi_arg and all backends
    that write results to an ffi_arg.

commit 8af42f9944f7ed72c81ae360aac6a84dc11f89dc
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 13 16:40:28 2013 -0500

    Respect HAVE_ALLOCA_H

commit cdf405d574f479b782454516366bd4f4b9b3415e
Author: David Schneider <david.schneider@bivab.de>
Date:   Wed Nov 13 15:50:21 2013 +0100

    add a testcase for the double/float issue on ARMHF

commit 77f823e31ffb557a466b24f7fba845fbf7831798
Author: David Schneider <david.schneider@bivab.de>
Date:   Wed Nov 13 14:26:57 2013 +0100

    stop trying to assing vfp regs once we are done with the registers

commit 37067ec5036f2a6ed7a4799f83f8f53160460344
Author: David Schneider <david.schneider@bivab.de>
Date:   Tue Nov 12 19:49:01 2013 +0100

    mark all vfp registers as used when done.
    
    To avoid assigning registers the would fit, once arguments have been on
    the stack, we mark all registers as used once we do not find a free
    register for the first time.

commit 2f5b7ce545473a7f6e41193edc29407cbebe82d5
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 9 06:16:32 2013 -0500

    UltraSPARC IIi fix.  Update README and build configury.

commit becd754434173032f426d22ffcbfe24f55b3c137
Author: Mark Kettenis <kettenis@gnu.org>
Date:   Wed Nov 6 06:43:49 2013 -0500

    Align the stack pointer to 16-bytes.

commit 05c31093409f7b3e6d795fac21d2c954313d8162
Author: Konstantin Belousov <kib@freebsd.org>
Date:   Wed Nov 6 06:40:58 2013 -0500

    Mark executable as not requiring executable stack.

commit cf6bf9818e8394cfcdb07a40c6a5e2ee6b01d333
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 2 17:23:59 2013 -0400

    Fix up docs

commit 02177176854d16fc0f1a5958aa34da2f306630ee
Merge: c242217 c265b4c
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 2 17:11:22 2013 -0400

    Merge branch 'master' of github.com:/atgreen/libffi

commit c2422174b3edc0de0b148dfd6b67087bb881c4a6
Merge: f4b843f d918d47
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 2 14:08:23 2013 -0700

    Merge pull request #45 from foss-for-synopsys-dwc-arc-processors/arc_support
    
    arc: Fix build error

commit c265b4cacb9130f042699a85de9c7242b3f49cc3
Merge: f4b843f d918d47
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 2 14:08:23 2013 -0700

    Merge pull request #45 from foss-for-synopsys-dwc-arc-processors/arc_support
    
    arc: Fix build error

commit f4b843f83710ac378c48abd87fe66bb519d30d2e
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 2 17:01:15 2013 -0400

    Don't align stack for win32

commit f3cd39345713db8e414cf642b6cb65a4cfe6018c
Merge: 666f3e7 6aa1590
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 2 13:17:57 2013 -0700

    Merge pull request #51 from vbudovski/for_upstream
    
    Don't use 16 byte aligned stack for WIN32

commit 666f3e71b56d92c49fcd2d7f349b8f8ebca0f8a3
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Oct 26 09:12:42 2013 -0400

    Add more credits to README.  Tidy up.

commit 73ada14e756bad97fad0e6915a821a3c7e079f81
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Oct 26 09:09:45 2013 -0400

    Update README

commit d3372c54ce7117e80d389ba875dc5b6b2213c71e
Author: Mark H Weaver <mhw@netris.org>
Date:   Sat Oct 26 08:30:06 2013 -0400

    Fix N32 ABI issue for MIPS.

commit d6716aba8118eb0513885cfe557bedebb7016e8b
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Oct 15 15:42:49 2013 -0400

    Update travis-ci build dependencies to include texinfo

commit 16b93a211bcfbe4bd0efdcf94de225a71aa0ee02
Author: Sandra Loosemore <sandra@codesourcery.com>
Date:   Tue Oct 15 15:33:59 2013 -0400

    Add nios2 port.

commit 2f5626ce02fce8267ab48ceb6d7d0ed7d672a75e
Author: Sandra Loosemore <sandra@codesourcery.com>
Date:   Tue Oct 15 15:32:16 2013 -0400

    Fix testsuite bug

commit f64e4a865557e440774436b4c2b2fd7374290e97
Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
Date:   Tue Oct 15 15:20:14 2013 -0400

    Fix many.c testcase for Aarch64

commit 128cd1d2f358f26d9fa75a27cf2b30356f5dd903
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Oct 8 06:45:51 2013 -0400

    Fix spelling errors

commit ff06269d707cafbfef2a88afb07a79c9d1480c5f
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Oct 8 06:32:18 2013 -0400

    Update README for M88K and VAX

commit d2fcbcdfbea750d1f6a9f493e2e6c4d5ffa71b34
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Oct 8 06:27:46 2013 -0400

    Add m88k and VAX support. Update some configury bits.

commit 6aa15900accc0a648cdebf11ec11d11697ebfffd
Author: Vitaly Budovski <vbudovski@gmail.com>
Date:   Thu Sep 5 12:05:06 2013 +1000

    Don't use 16 byte aligned stack for WIN32
    
    This fixes a crash when accessing __stdcall functions in Python ctypes.

commit 3b44d41156149af8da2a58825fefdfa23274ae7a
Author: Makoto Kato <m_kato@ga2.so-net.ne.jp>
Date:   Wed Jul 10 15:34:53 2013 +0900

    Fix build failure when using clang for Android
    
    clang for Android generates __gnu_linux__ define, but gcc for Android doesn't.  So we should add check it for Android

commit d918d47809c174d62283306b282749f8db93661f
Author: Mischa Jonker <mjonker@synopsys.com>
Date:   Mon Jul 8 15:51:36 2013 +0200

    arc: Fix build error
    
    One part of the patch for ARC support was missing in the upstreamed
    version.
    
    Signed-off-by: Mischa Jonker <mjonker@synopsys.com>

commit d3d099b40c122550279789200263346f120f6909
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Jul 2 16:11:38 2013 -0400

    little-endian ppc64 support

commit 0f8690a84c874ec09a090c8c6adfb93c594acac6
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Jul 2 15:54:40 2013 -0400

    Rebuild for ARC additions

commit f88118b345f27c46f5445d6e4832c498ff9a6d85
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Jul 2 15:51:27 2013 -0400

    Revert "Merge pull request #36 from abergmeier/emscripten_fix"
    
    This reverts commit 6a4d901dde7b3f87984c563505717cde3113d16e, reversing
    changes made to b50a13b9c07ec09af4b9697e482acdad571e6961.

commit 6a4d901dde7b3f87984c563505717cde3113d16e
Merge: b50a13b 587002c
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Jul 2 12:12:34 2013 -0700

    Merge pull request #36 from abergmeier/emscripten_fix
    
    Fixes for building with Emscripten

commit b50a13b9c07ec09af4b9697e482acdad571e6961
Merge: 767f1f9 b082e15
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Jul 2 12:10:26 2013 -0700

    Merge pull request #44 from foss-for-synopsys-dwc-arc-processors/arc_support
    
    Add ARC support

commit 767f1f96e5282da44d7340e6815e9820a3f78e39
Merge: c3c40e0 b8a91d8
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Jul 2 12:08:04 2013 -0700

    Merge pull request #43 from JensTimmerman/__m128
    
    added include for xmmintrin.h

commit b8a91d81be77d479327fdb6bdd9fdae6d18e6e63
Author: Jens Timmerman <jens.timmerman@ugent.be>
Date:   Tue Jul 2 10:57:37 2013 +0200

    added include for xmmintrin.h

commit b082e15091961373c03d10ed0251f619ebb6ed76
Author: Mischa Jonker <mjonker@synopsys.com>
Date:   Mon Jun 10 16:19:33 2013 +0200

    Add ARC support
    
    This adds support for the ARC architecture to libffi. DesignWare ARC
    is a family of processors from Synopsys, Inc.
    
    This patch has been tested on a little-endian system and passes
    the testsuite.
    
    Signed-off-by: Mischa Jonker <mjonker@synopsys.com>

commit cc9b518687e46b0d1acafdd4bc3f3b281c25a3d9
Author: Marcin Wojdyr <wojdyr@gmail.com>
Date:   Tue May 14 15:01:23 2013 +0200

    Update libffi.pc.in
    
    use -L${toolexeclibdir} instead of -L${libdir}
    to be consistent with Makefile.am

commit 587002c092cffe6e7a8d7028f246c241d03b738c
Author: Andreas Bergmeier <andreas.bergmeier@gmx.net>
Date:   Fri Apr 19 17:12:24 2013 +0200

    Enable disabling of libtool on platforms where it does not work (e.g. LLVM).
    Build libraries normally then.

commit c3c40e0290377d7cf948b072eedd8317c4bf215e
Merge: ede96e4 4750e3c
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Mar 30 05:24:14 2013 -0700

    Merge pull request #34 from davidsch/armhf
    
    Fix ARM hard-float support for large numbers of VFP arguments

commit 4750e3c662fd9569cb3e2d28f539685fd1ca8caf
Author: David Schneider <david.schneider@bivab.de>
Date:   Thu Mar 28 16:56:36 2013 +0100

    update changelog

commit 9708e7cf09f1bf815f4d6485eb1f180fabb35804
Author: David Schneider <david.schneider@bivab.de>
Date:   Wed Mar 27 19:31:04 2013 +0100

    folow the ARM hard-float ABI in ffi_prep_incoming_args_VFP

commit b41120981e5e49ca2da10b94b154775f50da5f36
Author: David Schneider <david.schneider@bivab.de>
Date:   Wed Mar 27 16:38:35 2013 +0100

    create separated versions of ffi_prep_incoming_args_* for SYSV and VFP ABIs.
    
    The different versions will be called depending on the value of cif->abi

commit dd26f1f39c54861c5b91931f0f37a72942c2a072
Author: David Schneider <david.schneider@bivab.de>
Date:   Thu Mar 28 15:39:01 2013 +0100

    add a failing test for closures on ARM hardfloat

commit 3c1608613ab3c2184222b98c5482cddedd6b559b
Author: David Schneider <david.schneider@bivab.de>
Date:   Tue Mar 26 19:24:47 2013 +0100

    extend ffi_prepare_args for FFI_VFP (hard-float ABI), fixing an issue with passing VFP arguments in VFP registers and the stack, while at the same time not using all core registers.

commit 0f2ff2d4c92719be8936179f9ab674f4d1a3fd14
Author: David Schneider <david.schneider@bivab.de>
Date:   Tue Mar 26 19:22:02 2013 +0100

    separate ARM ffi_prepare_args in a version implementing the simple SYSV calling convention and one for the hard-float calling convention

commit 3a352b8a8252400a83de22c7c424bf1887b4a2ef
Author: David Schneider <david.schneider@bivab.de>
Date:   Tue Mar 26 14:24:04 2013 +0100

    move the hardfloat specific argument copying code to the helper function

commit 5df6b7944a4225b6eb329f3886be64e04e966f29
Author: David Schneider <david.schneider@bivab.de>
Date:   Tue Mar 26 14:02:21 2013 +0100

    extract setting of arguments to be passed to a helper function

commit 7d1048c471bb4b1f9d67a9e9f8e95f9a1d2e6d45
Author: David Schneider <david.schneider@bivab.de>
Date:   Tue Mar 26 11:33:33 2013 +0100

    extract code to align the argument storage pointer to a helper function

commit b9f013788f0f384c423ad963475aaacb55598135
Author: David Schneider <david.schneider@bivab.de>
Date:   Mon Mar 25 13:27:36 2013 +0100

    add a testcase, that on ARM hardfloat needs more than the 8  VFP argument registers to pass arguments to a call

commit 2fbdb0f231cafdb77b025d3cd8afe90cda99b3ba
Author: David Schneider <david.schneider@bivab.de>
Date:   Mon Mar 25 13:26:02 2013 +0100

    use the absolute value to check the test result against an epsilon

commit ede96e4eb660bbf3e0fe048135efa8106f48af5d
Merge: f22ab3c 9e34992
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 17 18:38:21 2013 -0400

    Merge branch 'master' of github.com:/atgreen/libffi

commit f22ab3c6877cbdd07f058b68816b0086b1cb0e1e
Merge: 12b1886 d08124b
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 17 18:34:54 2013 -0400

    Merge branch 'master' of github.com:/atgreen/libffi

commit 9e34992a5ea2fda1dba5875bf96dc91a7230f51f
Merge: 12b1886 d08124b
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 17 18:34:54 2013 -0400

    Merge branch 'master' of github.com:/atgreen/libffi

commit 12b1886d7b1f8aa264b1d348bfa47a0e14712df4
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 17 18:32:12 2013 -0400

    cygwin fix & updates for 3.0.13

commit d08124bedf2c6d61874fe215404783aeb9f6f1ac
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 17 18:32:12 2013 -0400

    cygwin fix & updates for 3.0.13

commit cb32c812d04d1dfa72002cc04924e7e4fef89e02
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Mar 17 09:27:55 2013 -0400

    Fix lib install dir

commit efd7866a361a6f636bae8400d26c6811e56ca207
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Mar 16 08:35:57 2013 -0400

    2.0.13rc1

commit ff647ad4dff2f07dd153f295a1f70b1d906cd6ca
Merge: 4acf005 d9dd417
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Mar 16 08:20:40 2013 -0400

    Merge branch 'master' of github.com:/atgreen/libffi
    
    Conflicts:
            ChangeLog

commit 4acf0056f55c757490dae6c29a65b0321327ea8a
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Mar 16 08:18:45 2013 -0400

    Build fix for soft-float power targets

commit 675c9839224e4268187f1ec6f512127f9db555d0
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Mar 16 08:12:38 2013 -0400

    Documentation fix

commit 8a286f570ccd41db81f74ea7f248da62241d898a
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Mar 16 08:01:19 2013 -0400

    Fix for m68000 systems

commit d9dd417b09566af55b7b3000bb53ccaf2e1d6c92
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Mar 16 08:01:19 2013 -0400

    Fix for m68000 systems

commit 215763d012a944d95406b394d6013b80d220e870
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Mar 16 07:57:35 2013 -0400

    Update configury.

commit 9180d8f39c9b6afe17b78277c2711a5d9948e824
Merge: 2fb527a 7e1b326
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Mar 16 07:46:55 2013 -0400

    Merge branch 'master' of github.com:/atgreen/libffi

commit 2fb527a017a4943e176a489ff103231b86464b59
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Mar 16 07:46:38 2013 -0400

    Add Meta processor support

commit 211a9ebf4d1a9801e15e103566aed2b8c42790be
Merge: f308faf ee18766
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Mar 16 04:24:40 2013 -0700

    Merge pull request #32 from alex/patch-1
    
    Fix for a crasher due to misaligned stack on x86-32.

commit 7e1b32649efd24814e86172e196f390566f9e970
Merge: f308faf ee18766
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Mar 16 04:24:40 2013 -0700

    Merge pull request #32 from alex/patch-1
    
    Fix for a crasher due to misaligned stack on x86-32.

commit ee18766b169811426c14b011fbb46d81e344f926
Author: Alex Gaynor <alex.gaynor@gmail.com>
Date:   Thu Mar 14 15:00:33 2013 -0700

    Fix for a crasher due to misaligned stack on x86-32.
    
    Full information on reproduction (using Python's ctypes available here: http://bugs.python.org/issue17423)

commit f308faf1eabaf8dc24966ab17fbf94368f46b9c7
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Feb 11 14:25:13 2013 -0500

    Add moxie support.  Release 3.0.12.

commit 4ea22e54e3b143fe05c413f6dddd236af6bcbfb2
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Feb 10 08:48:38 2013 -0500

    Update README

commit 10e77227b6ae85f46f28590bfb09ca3608554358
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Feb 10 08:47:26 2013 -0500

    mend

commit a9521411a53d58f2bf88199242200ceb0d4dae3a
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Feb 9 06:54:40 2013 -0500

    sparc v8 and testsuite fixes

commit 70b11b47eea93bf43627588d494d0b3b0d062481
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 8 16:12:19 2013 -0500

    Fix small struct passing on ppc

commit 63ba1fa79f7c4ce42de848debe233aab31aecb51
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 8 15:18:19 2013 -0500

    Remove xfail for arm*-*-*.

commit 24fbca4c1d57d4ea628c0a8ba643684daf54a37e
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 8 14:19:56 2013 -0500

    Fix typo

commit b0fa11cb0a94ce6baca058eab9b10e40475e71d6
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 8 14:17:13 2013 -0500

    More man page cleanup

commit 8bd15d139a58a6e46dc90a1cb2d89f59f32f06c7
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 8 13:56:37 2013 -0500

    Fix many.c testcase for ppc

commit 7aab825cf198be85490d3cd80e778d415d85ad9b
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 8 13:26:21 2013 -0500

    Add missing files to dist

commit cb03ea8f4eb08024e44abe4392edc77b89fbfbad
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 8 12:25:18 2013 -0500

    sparc v9 fixes for sun tools

commit 35ee8d44f31dd3d3b88083c837dc351593e13cc2
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 8 07:12:41 2013 -0500

    Fix microblaze big-endian struct issue

commit 9db7e1a958fc484ba149efe027008b9a170395fb
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Feb 7 21:06:08 2013 -0500

    Fix botched sparc patch. Update version.

commit ce0138e61455f268af326e26908b9680ec2c4bea
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Feb 7 18:04:01 2013 -0500

    Update bug report address. rc2.

commit fd07c9e40451e0ec1d0475cd54a83d45ccaea2c0
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Feb 7 18:00:36 2013 -0500

    Add cache flushing routine for sun compiler on sparc solaris 2.8

commit ed6ae9501b2bab45daf93b4935eb0c977635b763
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Feb 7 16:43:36 2013 -0500

    Add libtool-ldflags. Define toolexeclibdir for non-GCC builds.

commit ffef2e046aaec853be356f0b8770a335185ea9cf
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Feb 7 15:47:01 2013 -0500

    x32 and libtool fixes

commit 95eecebb2858dc6f1495a61072ff36d0a8127144
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Feb 7 15:32:46 2013 -0500

    Remove a.out cruft from dist

commit 176aa9d2e23d9cd57d6f250692d910b408f9a651
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Feb 7 15:29:22 2013 -0500

    Fix GCC usage test and update README

commit f3a4f3fdde89b04d66983a42a25d09161c5d4d54
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Feb 7 09:57:20 2013 -0500

    Fixes for AIX xlc compiler.

commit 522f8fef49848927482bc63c94afaea5b84e5ec1
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Feb 6 20:31:31 2013 -0500

    Fix man page. Clean out junk.

commit c4dfa259eb4e8e6f4c397868d7fee80aa0bb6a12
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Feb 6 17:43:24 2013 -0500

    Bump soversion

commit f62bd63fe6123cadedb8b2b2c72eb549c40fbce9
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Feb 6 17:38:32 2013 -0500

    Release candidate 1

commit f7cd61e9e68a4a51147df04d75bfe5b91b9d9286
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Feb 6 17:38:04 2013 -0500

    Fix pkgconfig install bits

commit 6a790129427121f7db2d876e7218a3104e6d2741
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Feb 6 17:37:15 2013 -0500

    Work around LLVM ABI problem on x86-64

commit 370112938e705128fd5dd4017fc1a1210bd0271a
Merge: bada2e3 bcc0c28
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Jan 27 05:09:04 2013 -0800

    Merge pull request #28 from jralls/master
    
    Reorder x86_64 checks

commit bcc0c28001b6d427d5cd8037d2e3c892babc6b4c
Author: John Ralls <jralls@ceridwen.us>
Date:   Sat Jan 26 15:21:14 2013 -0800

    Reorder x86_64 tests
    
    So that darwin and cygwin/mingw are tested before the generic check --
    which allows them to actually be set.

commit bada2e326d9a9acf3ae40cfa4f5d7a9ba97b2ea8
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jan 21 08:02:07 2013 -0500

    Update README

commit 655bb8f3690feba8e840a5f1854b1d78ed08f692
Merge: 1035ffb 840f975
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jan 21 08:01:24 2013 -0500

    Merge branch 'master' of github.com:/atgreen/libffi

commit 1035ffb2f468e1a1c401d58cff7e7abb69838e68
Merge: aeb8719 4086024
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jan 21 07:55:53 2013 -0500

    Update README

commit 840f975866052fdd91b2c224d56e01ae5900b60d
Merge: aeb8719 4086024
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jan 21 07:55:53 2013 -0500

    Merge branch 'master' of github.com:/atgreen/libffi

commit aeb8719a34756969970603fca4568530d56708af
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jan 21 07:37:30 2013 -0500

    New microblaze support

commit 40860245a4fd91a1b88adc9171ec993c549e45d5
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jan 21 07:37:30 2013 -0500

    New microblaze support

commit 20cae32b152b43679ae65a85db9a1c6bb8a143dd
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jan 21 07:07:38 2013 -0500

    Xtensa support

commit 9742f91782faef4a15941508a22c408fb7d1d227
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jan 21 07:03:41 2013 -0500

    Mention IBM XL compiler support on AIX.

commit f03eab08248f122ce3b623a18df9e19fae1b6e98
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Jan 11 17:14:11 2013 -0500

    Remove obsolete inline test functions

commit 05fbe1faedc7b2580d5f14010d00e9e3cee73951
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Jan 11 16:54:40 2013 -0500

    xlc compiler support

commit 0b4986a7889ed1864674192228f1162c1b5770a8
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Jan 11 11:19:52 2013 -0500

    [travis] install dejagnu with sudo

commit 3c337eef51ab9a4993fc875bfa26289dd6a08881
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Jan 11 11:18:14 2013 -0500

    [travis] install dejagnu

commit 90720962ce1baf9fc35d1bde1738102bcd5bd5ed
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Jan 11 10:57:30 2013 -0500

    Add first travis config file

commit bff052d9cd5be41ba9e47c76114054af487d3c30
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Jan 11 10:24:32 2013 -0500

    32-bit x86 fix and more

commit cd41aeab6176f839167955c016ecc19f65f75df3
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Jan 10 17:25:45 2013 -0500

    Add compiler column to table

commit 8bf987d4df7c4d21435b9211f6cc86abf5904b42
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Jan 10 17:24:51 2013 -0500

    Fix for sunpro compiler on Solaris

commit 3ee74fd6dc8ccd32b608bbff73526838fc34f70b
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Jan 10 17:15:03 2013 -0500

    Update documentation version.

commit 13e2d7b92557a9511a0414df82bf2df3edc55cba
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Jan 10 10:52:02 2013 -0500

    Handle both 32 and 64-bit x86 builds regardless of target triple

commit 5141543000fc86a3d49a907a2313713ee79e504d
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Jan 10 07:35:53 2013 -0500

    Don't run EH tests with non-GNU compiler

commit 56ba8d86f47937a0afb81a2b9e77c9d235d9db45
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Jan 10 07:25:10 2013 -0500

    Don't use warning checking macro with sun compiler

commit 6a028caec1b2c7904feb4c4f9cb7e1125e1d1b60
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Jan 10 01:19:43 2013 -0500

    Don't use GCCisms to define types when
    +       building with the SUNPRO compiler.

commit 2d9b3939751b3ef9739049509d353ade10b32a8f
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jan 9 21:14:54 2013 -0500

    Fix for closures with sunpro compiler

commit 8308984e479e3274a36e98e8272b5adbb6b774c2
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Jan 8 15:14:21 2013 -0500

    Make sure we're running dejagnu tests with the right compiler.

commit f26c7ca67147450db2fe25ea932944e6cf145d5c
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Jan 8 14:47:05 2013 -0500

    Make compiler options in dejagnu runs compiler specific

commit 74c776e21907fc2e59257c021f23077f8b7966cb
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Jan 8 12:25:54 2013 -0500

    Switch x86 Solaris to X86 from X86_64

commit 8962c8c8d06803e310bac0ffc8e84ea15daeff3f
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Jan 8 12:22:24 2013 -0500

    Fix read-only eh_frame test

commit 35ddb69c2b49746d940e919ca226ecc1be94f14a
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Jan 8 07:53:37 2013 -0500

    Only emit DWARF unwind info when building with GCC

commit f7879bc3f3a8d0bbfcc38771732c160a58ba9cd8
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Jan 8 07:30:28 2013 -0500

    Testsuite fix for Solaris vendor compiler

commit 67cea90fc0897021466fd102671019d30db474cd
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jan 7 06:30:24 2013 -0500

    mend

commit 0de3277b18cf54be3b81d509b9be9b47d9bc1e82
Author: Thorsten Glaser <tg@mirbsd.de>
Date:   Mon Dec 3 00:02:31 2012 +0000

    Testsuite fixes (was Re: [PATCH] Fix libffi on m68k-linux-gnu, completely)
    
    Dixi quod…
    
    >although I believe some 3.0.11 checks to be broken:
    
    And indeed, with a few minor changes on top of git master,
    I still get a full run of PASS plus one XPASS on amd64-linux!
    
    With the other patches (from this message’s parent) and
    these applied, I get a full PASS on m68k-linux as well.
    
    So, please git am these three diffs ☺
    
    bye,
    //mirabilos
    --
    FWIW, I'm quite impressed with mksh interactively. I thought it was much
    *much* more bare bones. But it turns out it beats the living hell out of
    ksh93 in that respect. I'd even consider it for my daily use if I hadn't
    wasted half my life on my zsh setup. :-) -- Frank Terbeck in #!/bin/mksh
    From 5cb15a3bad1f0fb360520dd48bfc938c821cdcca Mon Sep 17 00:00:00 2001
    From: Thorsten Glaser <tg@mirbsd.org>
    Date: Sun, 2 Dec 2012 23:20:56 +0000
    Subject: [PATCH 1/2] Fix tests writing to a closure retval via pointer casts
    
    As explained in <Pine.BSM.4.64L.1212022014490.23442@herc.mirbsd.org>
    all other tests that do the same cast to an ffi_arg pointer instead.
    
    PASS on amd64-linux (Xen domU) and m68k-linux (ARAnyM)
    
    Signed-off-by: Thorsten Glaser <tg@mirbsd.org>

commit 8f4772f383abd71cfa141c8a70ba11c1aa4ebe2c
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jan 7 06:14:53 2013 -0500

    m68k fixes for signed 8 and 16-bit calls.

commit ea7f8440d58afbebb181e295ff564fdf3d6590a0
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Jan 4 09:09:32 2013 -0500

    remove gcc-ism

commit f06c0f10377ac04eeba5e632dbe5c62c629df4e6
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jan 2 09:39:17 2013 -0500

    Add missing ChangeLog entry and generated files.

commit 1f8675d4c101d19d67ca0a55ff2ba973349558ad
Merge: 335f419 f6b58d2
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jan 2 06:34:38 2013 -0800

    Merge pull request #26 from rofl0r/master
    
    fix build error on ppc when long double == double

commit 335f419a86090cda9f215d149572f9481c3ad034
Merge: 53236d5 6d6f711
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jan 2 06:30:03 2013 -0800

    Merge pull request #23 from rurban/master
    
    cygwin/mingw shared libs need libtool LDFLAGS = -no-undefined

commit 53236d5061034cc0a7f4647fc1bd05ba1aeb3d2a
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jan 2 09:24:55 2013 -0500

    Regenerate files

commit 72222ca3fbe560e13c8dc89ca441b28b7cc74daf
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jan 2 09:06:38 2013 -0500

    Update texinfo.tex

commit 1e326c95431fc9896422fa36659f3e833852579c
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jan 2 09:05:02 2013 -0500

    Update config.guess and config.sub

commit cb6671f5b8a9596ff968c6b6c304f70adf71b368
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jan 2 08:56:07 2013 -0500

    Missing .gitignore changes for xcode support

commit ebbe77966855395a2a47ed2c09a38f93eb0481cf
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jan 2 08:54:05 2013 -0500

    missed x32 libtool patch.

commit 4394096da0aca0dd422b479a043c18b4f05c5770
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jan 2 08:51:35 2013 -0500

    missed trampoline_table patch. Move to GCC.

commit ed7a59c3ff7c84bd95c374a5aff21599f705e6dc
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jan 2 08:48:01 2013 -0500

    Windows symbol export fix.  Move to GCC.

commit ccee09a4ff843b11c7d8b6819776f57d187305c7
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jan 2 08:41:55 2013 -0500

    +2012-03-21  Peter Rosin  <peda@lysator.liu.se>
    +
    +       * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
    +       (set_ld_library_path_env_vars): Add the library search dir to PATH
    +       (and save PATH for later).
    +       (restore_ld_library_path_env_vars): Restore PATH.

commit 089dbce7cc0889eb26444d89ae062c73c69f26f0
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jan 2 08:37:35 2013 -0500

    med

commit 980a334c42b4b0eff32e55929ec6727d1326b05d
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jan 2 07:36:42 2013 -0500

    Test GCC update

commit 8bad679ade5000e57cdc9cacde22e8b99840930f
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jan 2 08:28:35 2013 -0500

    New stand-alone patch

commit 981c32ee115e9f0d6546a74592875e138222a9d1
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Jan 2 07:34:03 2013 -0500

    Merge with GCC.  Eliminate quilt bits.

commit 61a054929517fb80c437ba71c91f3e20cfff581a
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Nov 28 06:07:41 2012 -0500

    Refresh config.guess and config.sub

commit f6b58d2bdc0a24ce94dedce59802f091979df265
Author: rofl0r <retnyg@gmx.net>
Date:   Thu Nov 22 16:26:21 2012 +0100

    fix build on ppc when long double == double

commit 69da33a0761aeac73f9e9646269da61c906d6020
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Nov 12 15:25:47 2012 -0500

    Pull in config.sub for aarch64 support and more

commit f680b598b7bdde325ac9349e8c35151c228bf2df
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Nov 6 16:00:40 2012 -0500

    Add missing aarch64 configury bits

commit dfadfb19853c57c8623c436d0ef2bdafab24b433
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Oct 31 06:46:41 2012 -0400

    Rebase for ppc64 fix

commit e944b8c7eb1e2eeb9c0f3b9742b4d7f476860ce1
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Oct 30 14:06:09 2012 -0400

    Add PaX work-around

commit 9ccd51be1fdeb99f8b4f42f905166c2abbba8ac0
Merge: f342996 fa5d747
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Oct 30 13:37:37 2012 -0400

    Fix commit conflicts

commit f342996cb50eb23b868afcff5ac0cdbb6b505d63
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Oct 30 07:42:27 2012 -0400

    Darwin12 fix

commit 58e8b66f70cef2e3c9b0e5a707b45d634cbbf5d9
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Oct 30 07:07:19 2012 -0400

    AArch64 port

commit fa5d747905472571fd472c07d4726017624f66b3
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Oct 30 07:07:19 2012 -0400

    AArch64 port

commit 6993a6686f43f2313b18142c1e96189a27db2aa3
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Oct 30 06:59:32 2012 -0400

    Fix autoconf macros

commit 70084e70ddb13b29dd05c751b1904de206bbe790
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Oct 12 23:55:06 2012 -0400

    Update Tile* port info

commit 9c00a3f6742d61404b31268cc773e7130ff43331
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Oct 12 16:46:06 2012 -0400

    TILE-Gx/TILEPro support

commit 048d2f41c3a6664b4b64bf21e804686662da4160
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Oct 11 10:55:25 2012 -0400

    Rebase

commit 6d6f71108064f5069edd7bf771059d3b82640135
Author: Reini Urban <rurban@cpanel.net>
Date:   Sat Jul 7 12:42:00 2012 -0500

    cygwin/mingw shared libs need libtool LDFLAGS = -no-undefined
    
    otherwise only static libs are created.

commit d330f19292da8f39a78a9e2b0ba08df8094e3bc5
Author: Nicolas Lelong <rotoglup>
Date:   Sat May 5 09:37:02 2012 -0400

    iOS build fixes.

commit 09b23cfc1d6d15361eee18818851fd3cacb26559
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Apr 27 08:29:48 2012 -0400

    Update README with Blackfin/uClinux support

commit 213ed15c70e72d666154c08e2b41dae3f61f20d3
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Apr 27 01:34:15 2012 -0400

    Add blackfin supprt from Alexandre Keunecke.

commit ff3d76fd427382ce7d2b2ed54acdd0bce470ca4f
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Apr 11 23:16:48 2012 -0400

    3.0.11

commit 7e0a412c4fd9cbe77b467a9bf86f56aea62632c3
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Apr 11 22:47:44 2012 -0400

    Update files to ship

commit 39e6a5860416f7bad992149817e1da1ba7c460d4
Author: Zachary Waldowski <zwaldowski@gmail.com>
Date:   Wed Apr 11 22:39:46 2012 -0400

    More mac/ios build improvements

commit 853cc722a16f8d1254573ef3bb73c7b8f3d8a110
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Apr 10 06:33:33 2012 -0400

    Fix typo for darwin targets

commit 3f5023068cda07a3dd6dacbaa875a5b5fc96d4bb
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Apr 6 20:34:51 2012 -0400

    mend

commit ebb8e8945681ce0af7a5c47a980287e8ece84b84
Author: Mike Lewis <mikelikespie@gmail.com>
Date:   Fri Apr 6 20:02:08 2012 -0400

    Build iOS library with xcode

commit a098b44f4c592c2192fcdef4fad6108eb3f4301c
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Apr 6 17:04:35 2012 -0400

    Reapply missing testsuite changes for arm

commit 10d1e51393f08c14045db85843208f44f9f1e9ba
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Apr 6 11:57:14 2012 -0400

    Update to rc4.  Upgrade autoconf version.

commit 9bcc884276dc0a807b2605e510b11b1740dd9aa2
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Apr 6 11:53:07 2012 -0400

    Fix Linux/x32 reference in README

commit a044a56b1cd2a0924f5ec0d6b5a5089d14fcd1a1
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Apr 6 10:39:10 2012 -0400

    Linux/x32 libtool fix

commit 59bb61a36661b972e8443531d3b7bc736e131a4b
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Apr 6 08:26:14 2012 -0400

    Update libtool version, README, tests dists

commit f2981454cbe25cf9411b710f46c5f5552003a123
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Apr 5 15:45:19 2012 -0400

    Revert debug code changes

commit 39dccddb606f6fdb8dcb177d416e884041da6e30
Author: Zachary Waldowski <zwaldowski@gmail.com>
Date:   Thu Apr 5 12:32:41 2012 -0400

    Fix building with Clang for Darwin (OS X 10.6+ and iOS
     4.0+)

commit 3afaa9a34a81a305227ae8cf4f12b9d0484d055e
Author: Peter Rosin <peda@lysator.liu.se>
Date:   Tue Apr 3 07:40:31 2012 -0400

    Fix return_uc.c test case on windows.

commit 65f40c35a2873d8328359ec4512bd0736dbe32c7
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Apr 3 07:35:59 2012 -0400

    Repair ppc build regression.

commit 0a1ab12a8d15caa894116a82249551f23ef65612
Author: Peter Rosin <peda@lysator.liu.se>
Date:   Fri Mar 30 08:14:08 2012 -0400

    Various MSVC-related changes.

commit e1539266e6c6dde3c99832323586f33f977d1dc0
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Mar 30 00:40:18 2012 -0400

    ARM VFP fix for old toolchains

commit 7c5e60b5f47d725036a72162f136272bc407e3a1
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Mar 29 08:48:22 2012 -0400

    Rebase on fixed GCC sources

commit e72ed5eeaa9cfb0fdc86f6b3422734177b659f96
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Mar 21 09:52:28 2012 -0400

    Fix vararg float test

commit bd78c9c3311244dd5f877c915b0dff91621dd253
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Mar 21 08:09:30 2012 -0400

    More cygwin fixes

commit 84d3253f86dad6b4f261231935675d35fd964b05
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Mar 19 23:07:35 2012 -0400

    Rebase post GCC merge

commit 964c5b93f80dcaacf73056b7d15a4d2b4b7a217c
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Mar 3 14:46:20 2012 -0500

    abi check fixes and Linux/x32 support

commit 6c194233a5f6f1d274669afc5924a9e1f69d4876
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Mar 3 14:17:54 2012 -0500

    Add -no-undefined for both 32- and 64-bit x86
    windows-like hosts.

commit 8360bf1cd0aba8db5582266da70467de7e89a57a
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Feb 23 07:01:13 2012 -0500

    Ensure that users don't include ffitarget.h directly

commit d578b89619cf3d2baff027b203619dc307fc12e3
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Feb 15 00:18:18 2012 -0500

    Fix ABI check regression

commit dee20f8e45c486f5018f31e09bb362992aa498c3
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 10 13:06:46 2012 -0500

    Rebased from gcc

commit 4130e1972d001143e5e9f3c6b65f2a6f9524169e
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 3 13:18:27 2012 -0600

    Refresh autoconf-archive m4 scripts

commit 1ff9c604bb214b5a305064af1049577ef783730a
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Feb 1 16:34:30 2012 -0600

    Rebase from GCC

commit 211060eb8f714af0e935430efa6bb45e8e3ffc5d
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jan 23 14:24:01 2012 -0500

    Alpha fix

commit 78d9c638ba0de6edfbc603fd65d19c6562663248
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jan 23 14:17:24 2012 -0500

    mend

commit afaf3381604bd81803d8a5f3bf4d462299f1aac3
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jan 23 14:17:13 2012 -0500

    mend

commit 9e9c4aeb77de5608d602109f22100c1c0c79faad
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jan 23 14:11:23 2012 -0500

    Add Amiga support

commit 8efc0b1f4027d5a3cbf205e55d422d94e60f3226
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jan 23 13:47:38 2012 -0500

    Unlikely fixes

commit 1df51398ae183dc208ba4599ee867278b04d13d3
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jan 23 13:43:59 2012 -0500

    mend

commit cd2277cc796b96b149cd284ae85326529fe7fb9c
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jan 23 13:43:38 2012 -0500

    mend

commit 164e6fe04b189746c8bd5810c6e3e919770bb9d4
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jan 23 12:41:06 2012 -0500

    m68k fixes

commit c365ee7577bef00cb3c2c0b5224147aea04138d8
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jan 23 11:13:18 2012 -0500

    Refresh

commit f22c38bbd93bcc0c04bf26c3e414556b3177c385
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Nov 18 15:13:41 2011 -0500

    Update variadic patch

commit 03e9ee321a3c208f88d2432587ce40b2bb2430ba
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Nov 18 15:13:00 2011 -0500

    Fix cls_double_va.c and update docs

commit 95f31151ec792809cfb80d385350f9f56d95aa25
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 12 23:46:05 2011 -0500

    Rerun automake

commit 198ed1ef85cf18342627f8d44bc3f12c9975a49d
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 12 23:45:20 2011 -0500

    Update version number

commit 4f17e1f142e805b13959ba2594ee735eae439f4e
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 12 17:22:24 2011 -0500

    Fix last patch

commit ff9454da44859716a5bd4eaa344499288c79694f
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 12 17:18:51 2011 -0500

    Add David Gilbert's variadic function call support

commit ea14ae85e8f54ff046b7fb8a9cfe349475272044
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 12 16:36:59 2011 -0500

    clean up

commit 52891f8a93f9b8de801cca4cf05639422dc9773e
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 12 16:35:55 2011 -0500

    Add powerpc soft float support

commit c8f1bde8e2566c5a87474b4d08aa934d6d28ee75
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 12 16:21:02 2011 -0500

    Remove junk file

commit 6a6e7f862f3cc677e19131587caa619e7f9c7ffd
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 12 16:20:42 2011 -0500

    Fix kfreebsd

commit d52fbed05ccbdee9ed8b9c911cbb4f85b0ff0f2a
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 12 16:13:41 2011 -0500

    Add missing ChangeLog entry

commit 322052ce65c4fdac85bedc24726fd0e0094ba521
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 12 16:11:49 2011 -0500

    Fix arm wince alignment issue

commit af18df2bc2f52df81e7b5c619bd86db8489dc873
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 12 15:52:08 2011 -0500

    Remove use of ppc string instructions

commit 236c9391321f83ad40daf03f40c35c9ebc1da6b3
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 12 07:37:40 2011 -0500

    Fix darwin11 build problem

commit c411f140f305ebb00d33c92b7cb2742bcd241b6a
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 12 07:32:36 2011 -0500

    Fix ax_enable_builddir macro on BSD systems

commit 3d56106b07735abef6ae9f032e94f560a0ed2f30
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Nov 12 07:20:24 2011 -0500

    Rebase

commit 8c01954c50bf8ef2e00a3db166060a1b8f83a20d
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Sep 6 14:26:32 2011 -0400

    Build assembly files with debug info

commit fed646a2078969f4ce89c29107f1e72e03f4a977
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Sep 6 09:50:20 2011 -0400

    Regenerate configury with missing m4 macros

commit d76441cf71216f8f1e62e7ec852a7f4e21371ec8
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Aug 24 10:14:23 2011 -0400

    Update list of supported OpenBSD systems

commit ee6696fdf4768ba6dd037fb6dd99435afa13816e
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Aug 23 12:30:29 2011 -0400

    3.0.11-rc1. soname bump.

commit c6265c36a91eab8175d0e72db84d8225418f2379
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Aug 23 10:31:33 2011 -0400

    Version 3.0.10

commit cc5e41bf32d18a14dbdd653d52eacdbdc934c392
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Aug 22 16:34:24 2011 -0400

    Fix use of autoconf macros

commit 049d8386ff52399e69a530b55b9feedc8a2589d2
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Aug 22 14:50:10 2011 -0400

    Many new patches

commit 3b7efa4e74f0dcebf70b447391987aedd3473306
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Aug 15 13:25:13 2011 -0400

    Revert remove-debug-code patch temporarily (for ARM Fedora release)

commit d992ac54a2a9e7e064ffebcb91e05e7cb86185c7
Author: Anthony Green <green@gmachine.(none)>
Date:   Fri Jul 29 17:32:53 2011 -0400

    Refresh from GCC

commit 2d3fb36420e09304220ee6c0652bae5eccdb965d
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Mar 30 16:54:42 2011 -0400

    Fix darwin EH

commit 30ff28e1d8cd9ed5319f1fbe9c7cccacc8161fb3
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Feb 28 15:36:23 2011 -0500

    Fix permissions

commit 09f8f310f4f53a24289682d3d28f4399d7bafc3b
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Feb 28 15:36:07 2011 -0500

    More AIX fixes. rc9.

commit 53d7b165642c220aa5166ba350b490802f359b54
Merge: 18dd85d 3000dc2
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Feb 28 15:23:31 2011 -0500

    Merge branch 'master' of https://github.com/landonf/libffi-ios

commit 18dd85d6cb9f3f3eea2a3b70eb4e150045905c55
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 25 16:23:04 2011 -0500

    rc8. fix last patch.

commit 74ee6ea8b42e60d44a3ae8938b1e42a38c1e66b4
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 25 15:52:14 2011 -0500

    rc7.  More AIX fixes.

commit 2541679dbd3db0014890f42192dbf8008ab923fa
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 25 15:09:13 2011 -0500

    Fix ppc32 bug

commit cbb062cc35c518004f1ab45c847f8ec4f66069ad
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Feb 17 20:39:21 2011 -0500

    Another non-GCC configury fix

commit 8cf8878425e9971866fa6b27a3e4914729ad3960
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Feb 15 15:19:49 2011 -0500

    Fix ax_cc_maxopt.m4

commit 24b72070c0937f9000744c77a636f07e04786b6a
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Feb 14 15:30:57 2011 -0500

    Fix warning and msvcc patches

commit d72c49e556a8c516e97f6722d1be2f1209c21207
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Feb 13 11:41:05 2011 -0500

    Add missing msvcc.sh

commit 3000dc237f6017a7445d8404097a4f46b73fdd29
Merge: 55e4a5a 1fbf9dc
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sun Feb 13 08:55:53 2011 -0500

    Merge remote branch 'upstream/master'

commit 1fbf9dc44feea564e84ad7406d17c5d5906ce0e0
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Feb 13 08:06:39 2011 -0500

    Fix bad_abi test. rc5.

commit 90af15ef5c1614b76370c4d13954586fabf9e8e3
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Feb 12 12:29:36 2011 -0500

    iOS fixes

commit 55e4a5aa1568558a04aa40f16fc022e459af53e3
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sat Feb 12 12:13:46 2011 -0500

    Add support for building a full armv6/armv7/i386 universal iOS library

commit a0c80f279b8733d001cb5e5c5a3289ecb7a6e56a
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sat Feb 12 11:43:49 2011 -0500

    Update my e-mail address.

commit 8195e0e11df7a53fa474caa9375f73ca1136ed66
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sat Feb 12 11:27:00 2011 -0500

    Fix symbol prefixes on Darwin.

commit 56b3f8cef0f28cefaa0f40fe0cf7c524adef131d
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sat Feb 12 11:14:54 2011 -0500

    Modify the ffi_closure structures to hold table/table entry pointers instead of a code buffer.
    
    This re-integrates commit da2773e02ab26cc11a7f.

commit 28a00f61ff3f64c4eb2269ce2aea3d493274469e
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sat Feb 12 11:01:48 2011 -0500

    Apple assembler support; fixed most gas/ELF-isms.

commit 7f2ea33a80bfced5e48ed7292f3b8f057d54ff8f
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sat Feb 12 10:39:18 2011 -0500

    Replace RETLDM macro.
    
    The macro is incompatible with Apple's assembler; switch to
    a simple inline version.

commit 92ff23e77fa586455b427b71f49e1d9502470e6e
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sat Feb 12 10:24:49 2011 -0500

    Switch to the current iOS 4.2 SDK.

commit 58fb8ca2dfb89ad70284bb9678d3d4dbb658c8a7
Merge: cc3fbd9 71c792f
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sat Feb 12 10:23:19 2011 -0500

    Merge remote branch 'upstream/master'

commit cc3fbd975ce9366d4c40a6ff6c108f664867bd7c
Merge: e449a43 f6ab3ed
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sat Feb 12 10:21:02 2011 -0500

    Merge branch 'master' of github.com:landonf/libffi-ios

commit e449a43bbe12f8119399928db1ae26adc71dde14
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sat Feb 12 10:20:42 2011 -0500

    Allow specification of the minimum supported iOS version.

commit 71c792f51bcf3e2f334e5ea1fb1a8b667cb3aedb
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Feb 12 09:33:11 2011 -0500

    rc4

commit 7c7c9f327299331022f6000603a35f2310dfe308
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Feb 12 09:29:29 2011 -0500

    ungccify parts of the build

commit ed62e48b95a0fa60b685f647cb73c9e190eec35c
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 11 12:23:58 2011 -0500

    Fix permissions

commit 17d9e9e68ddb1b915a0b9751713033861b598575
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 11 12:23:20 2011 -0500

    Use newer autotools.  Only build debug.c when --enable-debug.

commit 6972a4ffda75761eaab7dfbe0fb1516b255e8e0c
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 11 07:32:51 2011 -0500

    Fix xlc build on AIX

commit 1833aa0fb9831eb0725b63e35886c0f6d35df480
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Feb 11 07:11:04 2011 -0500

    sparc ABI test fix.

commit f1fb139b4e283fffdcf205a903943d5e9d2bb2a2
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Feb 9 18:30:02 2011 -0500

    Fix tests

commit 5cb470331d181c84d5d621e88868327a324a5898
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Feb 9 15:23:06 2011 -0500

    Fix permissions

commit 269deef6dbbb426695919d3398357fada3bb288c
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Feb 9 15:22:23 2011 -0500

    rc3

commit 42695e72504f647444b8e8e9b90bd24f1e3220e1
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Feb 9 15:12:35 2011 -0500

    Fix IRIX support

commit a6e56b97f62a3feeb3301c24a2e4cae55e546021
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Feb 9 15:00:42 2011 -0500

    Add powerpc64-*-darwin* support

commit 747d6c32d4abb07c10c3a1f93579c3929aaa2487
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Feb 9 14:56:23 2011 -0500

    Add Interix support

commit eab6e41cde382aa07de6c011d514a14c0d62eb47
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Feb 9 10:15:02 2011 -0500

    Remove README.markdown form libffi-ios

commit 69dbe845f4ee3e6ce8999f17a1e4f2179ef7da89
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Feb 9 07:38:43 2011 -0500

    Fix xfails

commit f498318c07b95137fe259d86bdbe15347588b84a
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Feb 9 06:26:46 2011 -0500

    Update README for iOS again

commit 630b9c0ac43c7edcbfd892e23c09fb26724f4ac0
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Feb 9 06:24:23 2011 -0500

    Update to rc2

commit 0cad4386fa4c9ea5f8ca88b16247db4e5c8fea90
Author: Anthony Green <green@moxielogic.com>
Date:   Wed Feb 9 06:11:46 2011 -0500

    Add ChangeLog entry.  Fix copyright headers.

commit 09cb76f2645bd2c151846e9249d8ea707ba01e8c
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Feb 8 20:39:51 2011 -0500

    Add missing change

commit 2e3a48ccdd54340983c46a29a0b41985e3e789ac
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Feb 8 20:37:26 2011 -0500

    Fix make dist

commit 5e4814d9928e236a2a4afe84d6e1d4fdaa473206
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Feb 8 19:46:28 2011 -0500

    fix permissions

commit 5c0cc6f1536aa1738795a97303810a823c7fa2cb
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Feb 8 19:45:59 2011 -0500

    3.0.10rc1

commit 857fe3de46d2286afa2fe772920ecf4aefa1688f
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Feb 8 19:39:20 2011 -0500

    Clean ups

commit e2214f8adb5577c247452e2cc9f4cbe304d7ca9f
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Feb 8 19:22:56 2011 -0500

    Update README

commit 1106229a5721a659da5c231ec0e8211119615394
Merge: bc9d0be f6ab3ed
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Feb 8 19:20:09 2011 -0500

    Add iOS support

commit bc9d0be2958ce475757f34dd2c878948aa77a39f
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Feb 8 17:04:26 2011 -0500

    3.0.10rc0 changes

commit 3b836249feae6d08d3e6887486e4b9961ddafa09
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Feb 8 14:28:59 2011 -0500

    Rebase from GCC

commit a26e3940619faeba6de54824c9540c90b1aab513
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Feb 8 13:56:12 2011 -0500

    copyright updates patch

commit b8099539f00e224107594101e9760b6dc081a056
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Feb 8 13:50:43 2011 -0500

    Fix msvcc.sh botch

commit dc411e8f99113a34656bfd2d3ae51259972488cc
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Feb 8 10:49:29 2011 -0500

    Fix HP-UX build

commit 404585d1348e30ac58203bbd876d9131e5aed874
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Feb 8 10:44:36 2011 -0500

    Fix sparc v8 aggregate type returns for sun's compiler

commit 19ce713188e193e4522740d24c20170411883d2d
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Feb 8 10:34:23 2011 -0500

    grammar fix

commit 89284fe55f1a8ad3bddbea796ee00d0e3ba411ce
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Feb 8 10:19:19 2011 -0500

    Fix AIX build with IBM XLC

commit ba022c338af97cb18d9f8ed5a607fd483a61c09c
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Feb 8 10:12:48 2011 -0500

    fix win64-underscore patch

commit 097e5f3924ee92a3ba6cd72f787da8a3eb14fea3
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Feb 8 10:11:00 2011 -0500

    x86 pcrel test part 2

commit ed2c518d960b91d444be74e5a55779a9c4602f3b
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Feb 8 10:10:07 2011 -0500

    x86 pcrel test

commit 0e5843995f46900ef212531281e08b224464f413
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Feb 8 07:52:40 2011 -0500

    Refresh from GCC

commit 5b9cd52784339a42e417174a55e310e214d435f9
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Nov 22 15:19:57 2010 -0500

    win64-underscore patch

commit 2db72615b50eb5c0f29725c02c740a2f0d7fc7d9
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Nov 21 10:50:56 2010 -0500

    Rebase

commit f6ab3edc23dc8fc7c47a31c896044150c23f04b5
Author: Landon Fuller <landonf@plausible.coop>
Date:   Wed Oct 27 19:34:51 2010 -0400

    Include the license header in the generated output.

commit cef619462887fa0f360e3ee702d1e04f112b5b38
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Wed Oct 27 13:59:30 2010 -0400

    Add missing copyright/license header.

commit 53f387b203413c9aa6e31f49dbb70d37d816330b
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sun Sep 19 19:57:17 2010 -0700

    Minor README fix.

commit 4fbcb5b5fbce11f4b168060e00639db33c85b75b
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sun Sep 19 19:50:37 2010 -0700

    Minor README fix.

commit 8e7652ef6acab5db7a29f786686a54f05cdbdc7d
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sun Sep 19 19:49:39 2010 -0700

    Add a libffi-ios-specific github README.

commit 83038cf24aa1a92b62b91ffee1dcc25d79243484
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sun Sep 19 14:36:45 2010 -0700

    Implement FFI_EXEC_TRAMPOLINE_TABLE allocator for iOS/ARM.
    
    This provides working closure support on iOS/ARM devices where
    PROT_WRITE|PROT_EXEC is not permitted. The code passes basic
    smoke tests, but requires further review.

commit b00ff3e98fdde622cef617030e14d5356dff988f
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sun Sep 19 14:22:26 2010 -0700

    Rename the generated symbol

commit da2773e02ab26cc11a7fe87e985599f35cdf0649
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sun Sep 19 14:21:37 2010 -0700

    Modify the ffi_closure structures to hold table/table entry pointers instead of a code buffer.

commit 01d71b7bed41844f80cb9feef20dcc5ece5ba2d0
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sun Sep 19 14:21:14 2010 -0700

    Regenerated the autoconf script

commit 19afda0069c42e51c81dca7b10a5cf884b4cdce0
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sun Sep 19 14:20:52 2010 -0700

    Enable AC_SUBST for FFI_EXEC_TRAMPOLINE_TABLE

commit 9e1196444e78aef20028c18891f44ebe39a815fd
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sun Sep 19 10:43:06 2010 -0700

    Add a hard-coded FFI_EXEC_TRAMPOLINE_TABLE arm implementation.
    
    This implements support for re-mapping a shared table of executable
    trampolines directly in front of a writable configuration page, working
    around PROT_WRITE restrictions for sandboxed applications on Apple's
    iOS.
    
    This implementation is for testing purposes; a proper allocator is still
    necessary, and ARM-specific code needs to be moved out of
    src/closures.c.

commit f38364b399184e682fc3e785084bd497827bc5af
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sun Sep 19 10:42:36 2010 -0700

    Fix symbol prefix for ffi_closure_SYSV_inner on Darwin.

commit 36849e7716b77aa25e4175d1f4be1b93dbf47aac
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sun Sep 19 09:35:04 2010 -0700

    Whitespace/comment fixes.

commit b764162526854686e579a48b6ac5981f4eb886a3
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sun Sep 19 09:04:34 2010 -0700

    Fix the script name (build-iphone.sh -> build-ios.sh)

commit a3d9aa85013341451ea97766485b7a11852d32b2
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sun Sep 19 09:03:52 2010 -0700

    Update the autogenerated autoconf/automake files.

commit c71480eaf839f26bbdfcd8965f65ac4d8defddc0
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sun Sep 19 09:02:05 2010 -0700

    Update automake/autoconf to conditionally build src/arm/trampoline.S if FFI_EXEC_TRAMPOLINE_TABLE is enabled.

commit 9af9291b73bc5e27ecd949bec8157f20426d65b8
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sun Sep 19 08:52:33 2010 -0700

    Add the trampoline table generated by gentramp.sh

commit 68ce0c383ece84f69945d1c8c3fed03f7f9cb5d6
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sun Sep 19 08:38:19 2010 -0700

    Add a shell script that generates the ARM trampoline page.
    
    This generates a page of 340 trampolines, aligned within one page. The
    trampolines use pc-relative addressing to reference config data
    (context, jump address) from a page placed directly prior to the
    trampoline page. This can be used on systems -- such as iOS -- that do not
    support writable, executable memory by remapping the executable page
    containing the trampolines directly above a newly allocated writable
    config page.

commit 75af086be8830a8eafe9b1ebda199d788bcb0c62
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sat Sep 18 18:12:19 2010 -0700

    Update autoconf files

commit 1ac92cca9b02ef8d6a769f0de1adccd5c9630355
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sat Sep 18 18:08:14 2010 -0700

    Add autoconf check for W^X platforms that require a trampoline table.
    
    This adds the FFI_EXEC_TRAMPOLINE_TABLE. The flag is enabled for
    arm-apple-darwin, where PROT_EXEC on writable (or formerly writable) pages is
    not permitted for sandboxed binaries.

commit be72fbab29b7190c702d8e1ac3d149855e95879d
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sat Sep 18 18:02:25 2010 -0700

    Use the correct host triple for arm/darwin

commit 70150bdf4509269965c72f2032bf74f285767afe
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sat Sep 18 16:38:03 2010 -0700

    Add missing UNWIND entry; disables .pad on non-EABI targets.

commit 6b452bafaec498df975ba8ac4c99de174e5f74f7
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sat Sep 18 16:21:32 2010 -0700

    Apple assembler support; fixed most gas/ELF-isms.

commit 8ddac835b6f8b54ede764d0ea977dee4c82e2d67
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sat Sep 18 15:38:06 2010 -0700

    Fix placement of the __APPLE__ macro.

commit 69043d02936bb0579ac59b4ee1ed8dec38c38db7
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sat Sep 18 15:32:08 2010 -0700

    Work-around libffi's FP ABI detection.
    
    On iOS, we must use the AAPCS floating point return value calling
    conventions. libffi's ARM implementation will only use these conventions
    if __SOFTFP__ is defined, which is not the case when GCC's
    -mfloat-abi defaults to 'softfp' instead of 'soft'. To work around this
    we manually define __SOFTFP__ for Apple platforms in the ARM-specific
    sysv.S.
    
    See also:
      http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/iPhoneOSABIReference/Introduction/Introduction.html
      http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042d/IHI0042D_aapcs.pdf

commit a82e6c354ea805114642a6e440abd0832cb1d23f
Author: Landon Fuller <landonf@bikemonkey.org>
Date:   Sat Sep 18 14:44:24 2010 -0700

    Add a stub iOS build script to drive autoconf

commit 84e8de6e9fc19388f6f1102c013b7d0d52940ecc
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Aug 6 01:35:12 2010 -0400

    Restore execute permissions

commit 3aeecc9eb1a6feba6549849cdd335c926415a4fc
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Aug 5 15:19:00 2010 -0400

    Fix win64-struct-args patch

commit 00d0b59cd13f89ab8b44bd894eb7f0a131fcb472
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Aug 5 14:56:53 2010 -0400

    Fix debug build for windows

commit bda487e87064f27965155459a62dc52a744778d0
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Aug 5 09:02:41 2010 -0400

    Don't use -safeseh with ml64

commit c1d28ba8d5029795af313ffeb81c97efc6d4c847
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Aug 5 08:48:16 2010 -0400

    stdcall-x86-closure-fix

commit 5feacad4a56c85b3f23a267a30b2cf424cd59548
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Aug 5 08:30:04 2010 -0400

    define generic symbols carefully

commit 10ea848900bc3018ac213cef52b44cacbe5cbebc
Author: Anthony Green <green@moxielogic.com>
Date:   Thu Aug 5 08:24:27 2010 -0400

    don't copy win64 struct args

commit d14178be4c49c3ada44a9fe9efe11d444372ddab
Author: Anthony Green <green@moxielogic.com>
Date:   Fri Jul 23 09:14:00 2010 -0400

    FFI_LAST_ABI fix

commit 3f5b1375ab1e2b8e3d593e21b27097a4a50f9b83
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Jul 12 14:39:18 2010 -0400

    rebase

commit eaf444eabc4c78703c0f98ac0197b1619c1b1bef
Author: Anthony Green <green@moxielogic.com>
Date:   Sat Jul 10 08:59:09 2010 -0400

    Fix selinux test

commit 630974152247f100ece4d44f10c3721bb4599fbf
Author: Anthony Green <green@gmachine.(none)>
Date:   Wed May 5 20:14:56 2010 -0400

    Micharl Kohler's spelling fixes

commit 9dc9a293f3d4589fcaf02dd4288c8cebaefa508e
Author: Anthony Green <green@gmachine.(none)>
Date:   Tue Apr 13 10:33:52 2010 -0400

    Rebase to latest GCC sources

commit f2c2a4fce9b3eca9f39b4f3545118bc256da4a73
Author: Anthony Green <green@gmachine.(none)>
Date:   Tue Apr 13 10:19:28 2010 -0400

    Remove warnings and add OS/2 support

commit c0b69e57d529e33d18b658cc5572a21e3663247c
Author: Anthony Green <green@gmachine.(none)>
Date:   Tue Mar 30 08:30:22 2010 -0400

    Dan Witte's windows build fixes.

commit 59a259f4d348f593b45f452309f4d020a28051c4
Author: Anthony Green <green@gmachine.(none)>
Date:   Mon Mar 15 05:57:51 2010 -0400

    Remove junk file

commit 3de1eb36d37a66829e606421939874d0d60d816d
Author: Anthony Green <green@gmachine.(none)>
Date:   Mon Mar 15 05:57:24 2010 -0400

    fix-comments patch

commit c3813b6d7f8a777700f4c5862190c0db148d4de8
Author: Anthony Green <green@gmachine.(none)>
Date:   Tue Jan 26 16:48:56 2010 -0500

    Rebuild Makefiles with automake 1.11.1 for CVE-2009-4029.

commit 8d27f68baa365bf883b6053c5f6bc819646d5434
Author: Anthony Green <green@gmachine.(none)>
Date:   Fri Jan 15 11:35:37 2010 -0500

    Mention recent changes in README

commit ff3cd68b8cf2d9a28cad7aa9beff46236eacec8c
Author: Anthony Green <green@gmachine.(none)>
Date:   Fri Jan 15 11:27:24 2010 -0500

    Add msvc.sh wrapper

commit cadeba6cb53414a1253582f1719c286665de7b6c
Author: Anthony Green <green@gmachine.(none)>
Date:   Fri Jan 15 10:46:51 2010 -0500

    Microsoft Visual C port

commit 0739e7dc00db766eb64f502ec4137b817638c9a1
Author: Anthony Green <green@gmachine.(none)>
Date:   Fri Jan 15 09:48:33 2010 -0500

    Add x86 Sun Studio compiler support

commit edfdfd2e85b8d01d2455934f1d7f4d7eb2f3cf1c
Author: Anthony Green <green@gmachine.(none)>
Date:   Wed Jan 13 02:56:19 2010 -0500

    Add closure example doc

commit 7b7a42f221cf171e8d09df34cac6dc1fd8458cc3
Author: Anthony Green <green@gmachine.(none)>
Date:   Tue Jan 12 09:14:14 2010 -0500

    Rebase from GCC

commit 4b18d1f73dc7733137869e4ab5725cb90c1c8fde
Author: Anthony Green <green@gmachine.(none)>
Date:   Fri Jan 1 10:24:27 2010 -0500

    Add x86-64 MingW to README

commit c3042afaf3f84abbbe9c91bf9bc9896b0d9eb003
Author: Anthony Green <green@gmachine.(none)>
Date:   Fri Jan 1 08:08:02 2010 -0500

    Reset quilt patches post 3.0.9 merge with GCC

commit b0304e9679bdfec6ac45a57b5c96542697249418
Author: Anthony Green <green@gmachine.(none)>
Date:   Thu Dec 31 11:32:40 2009 -0500

    Update version

commit 2e7e03d014d9c9bf40e97ce75cba089ad052fa6b
Author: Anthony Green <green@gmachine.(none)>
Date:   Thu Dec 31 07:43:22 2009 -0500

    Final updates before 3.0.9

commit aea706c52825c8eee677ffa7fdbdd3aed1725492
Author: Anthony Green <green@gmachine.(none)>
Date:   Tue Dec 29 10:09:31 2009 -0500

    really 3.0.9rc12

commit 0cfe60e9d13f132b88995cfee41f2156344f6fa2
Author: Anthony Green <green@gmachine.(none)>
Date:   Tue Dec 29 10:06:04 2009 -0500

    3.0.9rc12

commit 14e2e92e8645804b6940b3e96c98e9f7f384a6b2
Author: Anthony Green <green@gmachine.(none)>
Date:   Sun Dec 27 21:03:33 2009 -0500

    3.0.9rc11

commit 884402787bf8eaf7ec207085037cf8ace2f660ec
Author: Anthony Green <green@gmachine.(none)>
Date:   Sat Dec 26 12:57:23 2009 -0500

    HPUX support and avr32 test fixes.

commit 01c78756aff22efb1f122f8e93e068d7bf2185c7
Author: Anthony Green <green@gmachine.(none)>
Date:   Sat Dec 26 10:05:18 2009 -0500

    3.0.9rc9

commit 70868464651320268d79c6894db5a50fdc11032a
Author: Anthony Green <green@gmachine.(none)>
Date:   Sat Dec 26 09:58:03 2009 -0500

    Remove xfails for mips and arm

commit 838d4ad920ec85cf5ca3b511221d67f6d9a99024
Author: Anthony Green <green@gmachine.(none)>
Date:   Sat Dec 26 09:57:27 2009 -0500

    Remove a bunch of xfails.

commit 7e37eaaf772f48906e69618c773b0a36c3927de9
Author: Anthony Green <green@gmachine.(none)>
Date:   Sat Dec 26 07:46:50 2009 -0500

    Fix huge_struct for solaris

commit 07cc7a37194bc34064ebed7f2724333a798411c8
Author: Anthony Green <green@gmachine.(none)>
Date:   Sat Dec 26 07:23:04 2009 -0500

    3.0.9rc8

commit 2b9be16ffabc81326128bc1bbdddff8ddc5d13d3
Author: Anthony Green <green@gmachine.(none)>
Date:   Sat Dec 26 07:04:45 2009 -0500

    3.0.9rc8

commit 9458d88f676e9a21ab8993a54e16754b11687419
Author: Anthony Green <green@gmachine.(none)>
Date:   Sat Dec 26 07:02:27 2009 -0500

    Rebase from GCC

commit 6a3412417593f068a04dc6163f4269cb295ad5ca
Author: Anthony Green <green@gmachine.(none)>
Date:   Sat Dec 26 06:51:33 2009 -0500

    Add Andreas Schwab's powerpc fix

commit 39c8792ece1043f41f4c395a2ce71f4cf0ff4674
Author: Anthony Green <green@gmachine.(none)>
Date:   Fri Dec 25 21:52:28 2009 -0500

    3.0.9rc7

commit 1d04af52e3e24db69f742064694c22f8df5cc70e
Author: Anthony Green <green@gmachine.(none)>
Date:   Fri Dec 25 09:50:36 2009 -0500

    Updated some mips XFAILs

commit 26e9509c9b7929bc4fcf697071699051a652b1fd
Author: Anthony Green <green@gmachine.(none)>
Date:   Fri Dec 25 02:19:23 2009 -0500

    Clean up ChangeLog.libffi for older patches.

commit 9c157d3215e4393777f83eb6fa801df6528f40d7
Author: Anthony Green <green@gmachine.(none)>
Date:   Fri Dec 25 02:15:40 2009 -0500

    Clean up undefine_AC_ARG_VAR_PRECIOUS patch.

commit d22de05b0bfc480766bc1240615ce2830eee71b8
Author: Anthony Green <green@gmachine.(none)>
Date:   Fri Dec 25 02:04:23 2009 -0500

    Fix patches

commit 1fe3dc7c20dc4dbd8fed0d19c8618027d44ed971
Author: Anthony Green <green@gmachine.(none)>
Date:   Fri Dec 25 01:39:00 2009 -0500

    Add windows support patch.

commit f7c0bc613a88f7dbc2d18b345c10fa438833c170
Author: Anthony Green <green@gmachine.(none)>
Date:   Fri Dec 25 01:22:11 2009 -0500

    3.0.9rc6

commit c7fa2da8260258c11ab1dc7ac06fb611a2c1b50f
Author: Anthony Green <green@gmachine.(none)>
Date:   Thu Dec 24 07:22:44 2009 -0500

    3.0.9rc6

commit da11bece0fde66fc0268db3a01207dda857e25d2
Author: Anthony Green <green@gmachine.(none)>
Date:   Thu Dec 24 05:34:46 2009 -0500

    Release 3.0.9rc5

commit e3399b11edeab546b066bfc18574f3edb905d0dc
Author: Anthony Green <green@gmachine.(none)>
Date:   Thu Dec 24 01:09:32 2009 -0500

    Update README

commit 115ab36fceee69740a01ce49bc27e1908cc237b1
Author: Anthony Green <green@gmachine.(none)>
Date:   Thu Dec 24 00:22:00 2009 -0500

    Update missing changes for 3.0.9r4.

commit f8c7a245bf5a80bd7e730ec03fcad17c8dcfcb07
Author: Anthony Green <green@gmachine.(none)>
Date:   Wed Dec 23 23:46:22 2009 -0500

    Switch to quilt. Rebase to latest GCC.

commit ce806772f02387b9a74f6496a263a368bccd5d59
Merge: cd98813 dcc1f6b
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Oct 5 00:41:35 2009 -0400

    Merge branch 'master' of git@github.com:atgreen/libffi

commit dcc1f6b4f1ffd2713bf68b791a13f85d455c8b1b
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Oct 5 00:29:33 2009 -0400

    More clean up.

commit 2829f5941a223b9d851d8ab6318318e6197d7e01
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Oct 5 00:28:03 2009 -0400

    Clean up

commit cd98813de517ea64041637e3e78d27a001d6d3b4
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Oct 5 00:25:29 2009 -0400

    From Jens Rehsack.  Fix for 64-bit AIX.

commit e4a91de766acc47f6c50f13cc11719a65e23ecba
Author: Anthony Green <green@moxielogic.com>
Date:   Mon Oct 5 00:16:17 2009 -0400

    From Abdulaziz Ghuloum.  Adds special case for Snow Leopard.

commit 3425a763bcdaadb8b430226f427ec833afdcc96a
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Oct 4 23:57:29 2009 -0400

    Fix detection of free/openbsd.  From Alexis Ballier.

commit 2340e7a777902de61499d47823ad8d5e0eeb6203
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Oct 4 23:53:17 2009 -0400

    AVR support

commit 5cbe2058c128e848446ae79fe15ee54260a90559
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Oct 4 23:53:11 2009 -0400

    Initial stand-alone patch.

commit c6dddbd02bad9654ed58cdb0feb360934d105dec
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Oct 4 08:11:33 2009 -0400

    Initial commit

commit 5ffc0c37486fb1538bccc0ca7acc807d4f1af932
Author: Anthony Green <green@moxielogic.com>
Date:   Sun Oct 4 07:58:22 2009 -0400

    Update version to 3.0.9rc1.  Add more useful things to .gitignore.

commit bd29f83ee9f6fa6b65adee9d3f57834f364d9887
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Sep 29 12:07:26 2009 -0400

    Add .gitignore

commit 9474f853f83e3f0167c1b306177321bfcc93e56d
Author: Anthony Green <green@moxielogic.com>
Date:   Tue Sep 29 11:13:02 2009 -0400

    Remove old CVSROOT files.

commit 0c25275ec24bfe2c2c25a000465f0950ef9dd51b
Author: twall <twall>
Date:   Wed Aug 19 12:57:34 2009 +0000

    Apply Dave Korn's cygwin/GCC changes

commit 39228c27ed3f677a95b46380a8d31602b5777e1a
Author: aph <aph>
Date:   Tue Jun 16 18:00:47 2009 +0000

    2009-06-16  Wim Lewis  <wiml@hhhh.org>
    
            * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
            supposed to be callee-saved.
            * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
            return buffer for odd-size structs.

commit 5e93cc704d127c2c8ae7f5d2cef621145d43e777
Author: aph <aph>
Date:   Tue Jun 16 17:41:47 2009 +0000

    2009-06-16  Andreas Tobler  <a.tobler@schweiz.org>
    
            PR libffi/40444
            * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
            allow_stack_execute for Darwin.

commit b509af8959dc371b92392c623522ea6f4946a71d
Author: aph <aph>
Date:   Tue Jun 16 16:17:52 2009 +0000

    2009-06-16  Andrew Haley  <aph@redhat.com>
    
            * configure.ac (TARGETDIR): Add missing blank lines.
            * configure: Regenerate.

commit d57e96dc56ee76fbbb9b59d73aeaa92354db5ecb
Author: aph <aph>
Date:   Tue Jun 16 09:59:02 2009 +0000

    2009-06-16  Andrew Haley  <aph@redhat.com>
    
            * testsuite/libffi.call/cls_align_sint64.c,
            testsuite/libffi.call/cls_align_uint64.c,
            testsuite/libffi.call/cls_longdouble_va.c,
            testsuite/libffi.call/cls_ulonglong.c,
            testsuite/libffi.call/return_ll1.c,
            testsuite/libffi.call/stret_medium2.c: Fix printf format
            specifiers.
            * testsuite/libffi.call/huge_struct.c: Ad x86 XFAILs.
            * testsuite/libffi.call/float2.c: Fix dg-excess-errors.
            * testsuite/libffi.call/ffitest.h,
            testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.

commit b01d6d1982c9e020507029bfd5a58a8c60d111fa
Author: aph <aph>
Date:   Tue Jun 16 09:44:54 2009 +0000

    2009-06-16  Andrew Haley  <aph@redhat.com>
    
            * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
            * testsuite/libffi.call/err_bad_abi.c: Likewise.

commit 35b6ded138591900a88055a8a8ac1fadc29a76d6
Author: aph <aph>
Date:   Fri Jun 12 15:29:20 2009 +0000

    2009-06-11  Kaz Kojima  <kkojima@gcc.gnu.org>
    
            * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
            * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
            * testsuite/libffi.call/err_bad_typedef.c: Likewise.

commit acc46605f2d95d67d69398e7644610f10a157ce3
Author: aph <aph>
Date:   Fri Jun 12 14:21:28 2009 +0000

    2009-06-12  Andrew Haley  <aph@redhat.com>
    
            * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
            testsuite/libffi.call/cls_align_uint64.c,
            testsuite/libffi.call/cls_ulonglong.c,
            testsuite/libffi.call/return_ll1.c,
            testsuite/libffi.call/stret_medium2.c: Fix printf format
            specifiers.
            testsuite/libffi.special/unwindtest.cc: include stdint.h.

commit 16d1996ed0797bd7c11aca2b0fe7e7748751aaf6
Author: twall <twall>
Date:   Thu Jun 11 14:27:42 2009 +0000

    update changelog

commit 92a515c33efe91be3cb0258f01c63aff208489c7
Author: twall <twall>
Date:   Thu Jun 11 14:27:28 2009 +0000

    use ffi_closure_alloc instead of stack-based closure

commit e4363160ba9e50167f9ca0a7399d537a1d2cd0ce
Author: twall <twall>
Date:   Thu Jun 11 14:26:23 2009 +0000

    remove unused extern

commit 1dc2781d2ba38f5f000ff70069d617fb21e1d2af
Author: twall <twall>
Date:   Thu Jun 11 11:36:16 2009 +0000

    remove not-yet-applied changelog entries

commit bb27735fe689dac97ec0dc847ed8d3d519620109
Author: twall <twall>
Date:   Wed Jun 10 10:42:36 2009 +0000

    add win64 support

commit b2a54c100c74854a409820817d54617fdda39eb8
Author: aph <aph>
Date:   Mon Jun 8 16:50:49 2009 +0000

    2009-06-08  Andrew Haley  <aph@redhat.com>
    
            * testsuite/libffi.call/err_bad_abi.c: Add xfails.
            * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
            * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
            * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
    
            * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
            * testsuite/libffi.call/stret_medium.c: Likewise.
            * testsuite/libffi.call/stret_large2.c: Likewise.
            * testsuite/libffi.call/stret_large.c:  Likewise.

commit 25723e7141f73d3736d7244b980c89d97db852b6
Author: aph <aph>
Date:   Fri Jun 5 13:03:40 2009 +0000

    2009-06-05  Andrew Haley  <aph@redhat.com>
    
            * src/x86/win32.S (_ffi_closure_STDCALL): Import from gcc.

commit 70758199c7cd41f411987360ccb302b497a56dc9
Author: aph <aph>
Date:   Thu Jun 4 16:29:58 2009 +0000

     2009-06-04  Andrew Haley  <aph@redhat.com>
    
            * src/powerpc/ffitarget.h: Fix misapplied merge from gcc.

commit e8bb12563f9aa23ddf36fa6a5b92b16b5c3e1a7f
Author: aph <aph>
Date:   Thu Jun 4 14:59:18 2009 +0000

    2009-06-04  Andrew Haley  <aph@redhat.com>
    
            * src/mips/o32.S,
            src/mips/n32.S: Fix licence formatting.

commit d66a8e32c3671479e3ce0f6819673e5932ba6b7f
Author: aph <aph>
Date:   Thu Jun 4 14:43:40 2009 +0000

    2009-06-04  Andrew Haley  <aph@redhat.com>
    
            * src/x86/darwin.S: Fix licence formatting.
            src/x86/win32.S: Likewise.
            src/sh64/sysv.S: Likewise.
            src/sh/sysv.S: Likewise.

commit 7c3b7fd6b5db746b5b09a718f3044f811372f941
Author: aph <aph>
Date:   Thu Jun 4 14:39:20 2009 +0000

    2009-06-04  Andrew Haley  <aph@redhat.com>
    
            * src/sh64/ffi.c: Remove lint directives.  Was missing from merge
            of Andreas Tobler's patch from 2006-04-22.

commit 1a2f93a8b362db13638afd9fcb3f2650180bfa17
Author: aph <aph>
Date:   Thu Jun 4 10:45:51 2009 +0000

    2009-06-04  Andrew Haley  <aph@redhat.com>
    
            * src/sh/ffi.c: Apply missing hunk from Alexandre Oliva's patch of
            2007-03-07.

commit 944c95cf7aaaaf7c5fa368cda4673dd38f45020e
Author: aph <aph>
Date:   Wed Jun 3 17:42:56 2009 +0000

    2009-05-22  Dave Korn  <dave.korn.cygwin@gmail.com>
    
           * src/x86/win32.S (_ffi_closure_STDCALL):  New function.
           (.eh_frame):  Add FDE for it.
    
    2009-05-22  Dave Korn  <dave.korn.cygwin@gmail.com>
    
           * configure.ac:  Also check if assembler supports pc-relative
           relocs on X86_WIN32 targets.
           * configure:  Regenerate.
           * src/x86/win32.S (ffi_prep_args):  Declare extern, not global.
           (_ffi_call_SYSV):  Add missing function type symbol .def and
           add EH markup labels.
           (_ffi_call_STDCALL):  Likewise.
           (_ffi_closure_SYSV):  Likewise.
           (_ffi_closure_raw_SYSV):  Likewise.
           (.eh_frame):  Add hand-crafted EH data.
    
    2008-11-21  Eric Botcazou  <ebotcazou@adacore.com>
    
           * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
           signed/unsigned int8/16 return values.
           * src/sparc/v8.S (ffi_call_v8): Likewise.
           (ffi_closure_v8): Likewise.
    
    2008-03-26  Kaz Kojima  <kkojima@gcc.gnu.org>
    
           * src/sh/sysv.S: Add .note.GNU-stack on Linux.
           * src/sh64/sysv.S: Likewise.
    
    2008-03-26  Daniel Jacobowitz  <dan@debian.org>
    
           * src/arm/sysv.S: Fix ARM comment marker.

commit 00fa972430bb1535a4b34bf029ebcad500027b0c
Author: twall <twall>
Date:   Sat Dec 27 16:59:05 2008 +0000

    properly glob-match

commit f5179e6794ac35af26fe86e468b8508a7a570c55
Author: twall <twall>
Date:   Fri Dec 26 19:06:28 2008 +0000

    Mark XFAIL on longdouble tests for x86_64/mingw

commit 80e2b5a749208c8a18f994ec5bee84594d051cc8
Author: twall <twall>
Date:   Mon Dec 22 15:21:15 2008 +0000

    clean up tests for win64 use

commit 7063d9996f742576095c7b0eb5016c0f9a670aec
Author: green <green>
Date:   Fri Dec 19 16:13:46 2008 +0000

    Version 3.0.8 with x86-solaris support

commit bdfeb13f0df0a63b19d62597517237b54d92228b
Author: green <green>
Date:   Fri Dec 19 15:47:44 2008 +0000

    Bump to 3.0.7

commit 69205de17d6ac4c11d4ba92d6a5b40a0c5f246b2
Author: green <green>
Date:   Thu Jul 24 18:03:48 2008 +0000

    Many test fixes (failures due to excessive compiler warnings).

commit 260d513fea00b3613fe957a44a157fe72c4ca29e
Author: green <green>
Date:   Thu Jul 17 13:13:52 2008 +0000

    Version 3.0.6.  sh/sh64 fixes.

commit 3704031875feabb74e3655ed03cff4c2b3c76ac6
Author: green <green>
Date:   Thu Apr 3 18:57:57 2008 +0000

    Rev 3.0.5.

commit 8406f5f48f7f58a1c982a93a95d521cf82b3241f
Author: green <green>
Date:   Thu Apr 3 18:57:34 2008 +0000

    3.0.5

commit 23a9e73212b62f9684cedb0ce70e92c59cfdaffa
Author: green <green>
Date:   Wed Mar 5 00:07:02 2008 +0000

    2008-03-04  Anthony Green  <green@redhat.com>
                Blake Chaffin
                hos@tamanegi.org
    
            * testsuite/libffi.call/cls_align_longdouble_split2.c
              testsuite/libffi.call/cls_align_longdouble_split.c
              testsuite/libffi.call/cls_dbls_struct.c
              testsuite/libffi.call/cls_double_va.c
              testsuite/libffi.call/cls_longdouble.c
              testsuite/libffi.call/cls_longdouble_va.c
              testsuite/libffi.call/cls_pointer.c
              testsuite/libffi.call/cls_pointer_stack.c
              testsuite/libffi.call/err_bad_abi.c
              testsuite/libffi.call/err_bad_typedef.c
              testsuite/libffi.call/huge_struct.c
              testsuite/libffi.call/stret_large2.c
              testsuite/libffi.call/stret_large.c
              testsuite/libffi.call/stret_medium2.c
              testsuite/libffi.call/stret_medium.c: New tests from Apple.

commit 429e37d3ad653e52e75bf725c883ab79e859f89a
Author: green <green>
Date:   Thu Feb 28 04:50:19 2008 +0000

    clicky

commit 51e79c428348c033314f54bcb30f7e388c59e347
Author: green <green>
Date:   Thu Feb 28 04:47:35 2008 +0000

    getclicky

commit affcab04e280efeace45a72c4dc6152c0e4f1b7f
Author: green <green>
Date:   Tue Feb 26 19:01:53 2008 +0000

    2008-02-26  Jakub Jelinek  <jakub@redhat.com>
                Anthony Green  <green@redhat.com>
    
            * src/alpha/osf.S: Add .note.GNU-stack on Linux.
            * src/s390/sysv.S: Likewise.
            * src/powerpc/linux64.S: Likewise.
            * src/powerpc/linux64_closure.S: Likewise.
            * src/powerpc/ppc_closure.S: Likewise.
            * src/powerpc/sysv.S: Likewise.
            * src/x86/unix64.S: Likewise.
            * src/x86/sysv.S: Likewise.
            * src/sparc/v8.S: Likewise.
            * src/sparc/v9.S: Likewise.
            * src/m68k/sysv.S: Likewise.
            * src/ia64/unix.S: Likewise.
            * src/arm/sysv.S: Likewise.

commit 59689d5522c159a3ac967adb6b891cf5f22c890f
Author: green <green>
Date:   Tue Feb 26 17:40:51 2008 +0000

    2008-02-26  Anthony Green  <green@redhat.com>
                Thomas Heller  <theller@ctypes.org>
    
            * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
            comment.

commit b13c84cf4668828ff8429ba4a2f94cd1eb574ae0
Author: green <green>
Date:   Tue Feb 26 17:38:15 2008 +0000

    2008-02-26  Anthony Green  <green@redhat.org>
                Thomas Heller <theller@ctypes.org>
    
            * include/ffi.h.in: Change void (*)() to void (*)(void).

commit 265289f679ffd24a88ae1aa2cef0e4aa14703cd8
Author: green <green>
Date:   Tue Feb 26 17:34:36 2008 +0000

    2008-02-26  Anthony Green  <green@spindazzle.org>
    
            * src/alpha/ffi.c: Change void (*)() to void (*)(void).
            src/alpha/osf.S, src/arm/ffi.c, src/frv/ffi.c, src/ia64/ffi.c,
            src/ia64/unix.S, src/java_raw_api.c, src/m32r/ffi.c,
            src/mips/ffi.c, src/pa/ffi.c, src/pa/hpux32.S, src/pa/linux.S,
            src/powerpc/ffi.c, src/powerpc/ffi_darwin.c, src/raw_api.c,
            src/s390/ffi.c, src/sh/ffi.c, src/sh64/ffi.c, src/sparc/ffi.c,
            src/x86/ffi.c, src/x86/unix64.S, src/x86/darwin64.S,>         src/x86/ffi64.c: Ditto.

commit fb5036cd6d0f909918e90f7d2d9fd80d46682d5d
Author: green <green>
Date:   Sun Feb 24 17:25:25 2008 +0000

    fix date

commit 40bec108e7d0181e6c9928aa7a33187bcc0f3d6f
Author: green <green>
Date:   Sun Feb 24 17:25:02 2008 +0000

    New release

commit b922048fa82ea109a4af269ee47bbc2a586bbac2
Author: green <green>
Date:   Sun Feb 24 17:24:00 2008 +0000

    2008-02-24  Anthony Green  <green@spindazzle.org>
    
            * configure.ac: Accept openbsd*, not just openbsd.
            Bump version to 3.0.4.
            * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
            * libtool-version: Increment revision.
            * README: Update for new release.

commit affca4b92d06e5554784c7e9b233029ef83f7d8a
Author: green <green>
Date:   Fri Feb 22 21:53:29 2008 +0000

    sync readme with web page.

commit 3e53d8752ea74859b4c64fbbf935e62a937c4d78
Author: green <green>
Date:   Fri Feb 22 21:52:38 2008 +0000

    New release

commit 4d92f6c8e78fe084be65f3e8b58b859901ba796d
Author: green <green>
Date:   Fri Feb 22 21:49:46 2008 +0000

    2008-02-22  Anthony Green  <green@redhat.com>
    
            * configure.ac: Bump version to 3.0.3.
            * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
            * libtool-version: Increment revision.
            * README: Update for new release.  Clean up test docs.

commit 0e185fa11a01f816824ba2687ed3715ab6219bef
Author: green <green>
Date:   Fri Feb 22 21:43:18 2008 +0000

    Update configure script.

commit f73986bd211cfbbaa593d1309504d0dc68626191
Author: green <green>
Date:   Fri Feb 22 21:40:53 2008 +0000

    2008-02-22  Bjoern Koenig  <bkoenig@alpha-tierchen.de>
                Andreas Tobler  <a.tobler@schweiz.org>
    
            * configure.ac: Add amd64-*-freebsd* target.
            * configure: Regenerate.

commit 0208f68fe5de30c33e7f70ebc281635917013f5a
Author: green <green>
Date:   Fri Feb 22 21:15:44 2008 +0000

    2008-02-22  Thomas Heller <theller@ctypes.org>
    
            * configure.ac: Add x86 OpenBSD support.
            * configure: Rebuilt.

commit 01adb0e638a86cf0d5e668ed8e08be9b0cd2505f
Author: green <green>
Date:   Thu Feb 21 16:17:26 2008 +0000

    Fix README.

commit 1edd4563225981a14f7d4fb9919b1ed88e38082f
Author: green <green>
Date:   Thu Feb 21 13:39:01 2008 +0000

    3.0.2

commit c9b542800864e2204db6e83f3843a17813ba6165
Author: green <green>
Date:   Thu Feb 21 13:36:43 2008 +0000

    add missing file

commit d5fa5633d5c8d3c212a2267cfa38fba4091baa2c
Author: green <green>
Date:   Thu Feb 21 13:36:19 2008 +0000

    2008-02-21  Anthony Green  <green@redhat.com>
    
            * configure.ac: Bump version to 3.0.2.
            * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
            * libtool-version: Increment revision.
            * README: Update for new release.
    
    2008-02-21  Björn König <bkoenig@alpha-tierchen.de>
    
            * src/x86/freebsd.S: New file.
            * configure.ac: Add x86 FreeBSD support.
            * Makefile.am: Ditto.

commit ac35bfc6fcadd8880c1efce36724820f9074b318
Author: green <green>
Date:   Sat Feb 16 01:03:56 2008 +0000

    Updated

commit f7942975fee7b0162647dd79e2652615b737e98e
Author: green <green>
Date:   Sat Feb 16 01:02:00 2008 +0000

    2008-02-15  Anthony Green  <green@redhat.com>
    
            * configure.ac: Bump version to 3.0.1.
            * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
            * libtool-version: Increment revision.
            * README: Update for new release.
    
    2008-02-15  David Daney  <ddaney@avtrex.com>
    
            * src/mips/ffi.c: Remove extra '>' from include directive.
            (ffi_prep_closure_loc): Use clear_location instead of tramp.

commit 59aa6bb1bfc86a610ac1a8b123443efd75854dd1
Author: green <green>
Date:   Fri Feb 15 20:52:26 2008 +0000

    Add more platforms.

commit 45a45ab99074448be0ae1a8d2ade50d28b60f8de
Author: green <green>
Date:   Fri Feb 15 19:16:36 2008 +0000

    3.0 notes

commit 4db74cbea888c9f1251b85baf00d99b83d3b994d
Author: green <green>
Date:   Fri Feb 15 19:10:26 2008 +0000

    Update

commit c3e1101ffabf44d8a2ee46e03ba9ab582050a825
Author: green <green>
Date:   Fri Feb 15 18:43:40 2008 +0000

    2008-02-15  Anthony Green  <green@redhat.com>
    
            * configure.ac: Bump version to 3.0.0,
            * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
    
    2008-02-15  David Daney  <ddaney@avtrex.com>
    
            * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
            Define (conditionally), and use it to include cachectl.h.
            (ffi_prep_closure_loc): Fix cache flushing.
            * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.

commit 7e0cc12e9233ad285db41ce8dbdda61ed2a7fb06
Author: green <green>
Date:   Fri Feb 15 15:51:03 2008 +0000

    New release

commit 2d7dc885ec40d53866f29984d595511942c8b686
Author: green <green>
Date:   Fri Feb 15 15:30:26 2008 +0000

            * man/ffi_call.3, man/ffi_prep_cif.3, man/ffi.3:
            Update dates and remove all references to ffi_prep_closure.
            * configure.ac: Bump version to 2.99.9.
            * configure, doc/stamp-vti, doc/version.texi: Rebuilt.

commit a0525f03eeaaed33b1eac80e0c016455cee3615d
Author: green <green>
Date:   Fri Feb 15 15:14:30 2008 +0000

    New release.

commit 2b30dfb3146ee26ad956d00ee05eb835ca1a95b4
Author: green <green>
Date:   Fri Feb 15 15:12:43 2008 +0000

            * man/ffi_prep_closure.3: Delete.
            * man/Makefile.am (EXTRA_DIST): Remove ffi_prep_closure.3.
            (man_MANS): Ditto.
            * man/Makefile.in: Rebuilt.
            * configure.ac: Bump version to 2.99.8.
            * configure, doc/stamp-vti, doc/version.texi: Rebuilt.

commit bf41e64840ebcb6cc31a6f028253c1fde82705d8
Author: green <green>
Date:   Fri Feb 15 01:56:50 2008 +0000

    Update.

commit 4d39ddee677bbb61d621893b91e11eac5e7c4af7
Author: green <green>
Date:   Fri Feb 15 01:24:06 2008 +0000

    * configure.ac: Bump version to 2.99.7.
            * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
            * include/ffi.h.in LICENSE src/debug.c src/closures.c
              src/ffitest.c src/s390/sysv.S src/s390/ffitarget.h
              src/types.c src/m68k/ffitarget.h src/raw_api.c src/frv/ffi.c
              src/frv/ffitarget.h src/sh/ffi.c src/sh/sysv.S
              src/sh/ffitarget.h src/powerpc/ffitarget.h src/pa/ffi.c
              src/pa/ffitarget.h src/pa/linux.S src/java_raw_api.c
              src/cris/ffitarget.h src/x86/ffi.c src/x86/sysv.S
              src/x86/unix64.S src/x86/win32.S src/x86/ffitarget.h
              src/x86/ffi64.c src/x86/darwin.S src/ia64/ffi.c
              src/ia64/ffitarget.h src/ia64/ia64_flags.h src/ia64/unix.S
              src/sparc/ffi.c src/sparc/v9.S src/sparc/ffitarget.h
              src/sparc/v8.S src/alpha/ffi.c src/alpha/ffitarget.h
              src/alpha/osf.S src/sh64/ffi.c src/sh64/sysv.S
              src/sh64/ffitarget.h src/mips/ffi.c src/mips/ffitarget.h
              src/mips/n32.S src/mips/o32.S src/arm/ffi.c src/arm/sysv.S
              src/arm/ffitarget.h src/prep_cif.c: Update license text.

commit d58b032b41a12bd3d72148da6822ab59dd698ff9
Author: green <green>
Date:   Fri Feb 15 00:59:25 2008 +0000

    New release

commit 91e5478df6d5ac63efbb10f025807b4606afab56
Author: green <green>
Date:   Fri Feb 15 00:50:30 2008 +0000

    Update supported platforms.  Bump version.

commit bd0768f877c8f7fd0d36af2191b203d4d057b1ce
Author: green <green>
Date:   Fri Feb 15 00:45:33 2008 +0000

    * configure.ac: Bump version to 2.99.5.
            * configure: Rebuilt.
            * Makefile.am (EXTRA_DIST): Add darwin64.S
            * Makefile.in: Rebuilt.
            * testsuite/lib/libffi-dg.exp: Remove libstdc++ bits from GCC tree.
            * LICENSE: Update WARRANTY.

commit 49d345f767bd2cfee951bceaab6a1a07986cf293
Author: green <green>
Date:   Thu Feb 14 23:43:27 2008 +0000

    update license reference

commit 12ac48fc79b515db7c9accd9fcaa87b0dcefccdb
Author: green <green>
Date:   Thu Feb 14 23:42:08 2008 +0000

    Update WARRANTY

commit 6b91c41da87e78552f2990dfc504a0a3349f340b
Author: green <green>
Date:   Thu Feb 14 23:38:27 2008 +0000

    fix tarball reference

commit 2b59579e3533334bee4788e076b4e520c2ab518c
Author: green <green>
Date:   Thu Feb 14 23:35:58 2008 +0000

    First update in 5 years!

commit 6cbdf3f3a3777a93382a2d508ddef1c353ff0955
Author: green <green>
Date:   Thu Feb 14 22:44:06 2008 +0000

    Fix .pc file bug and bump version

commit 1d1dc81104b209df3cfef0840735c59efae2f655
Author: green <green>
Date:   Thu Feb 14 22:03:37 2008 +0000

    Add man files and info file. Update README.  Tag as 2.99.3.

commit f045a2367f793fa8b01534cf2e25bcc46afc8fa1
Author: tromey <tromey>
Date:   Thu Feb 14 20:46:57 2008 +0000

    Move entry from ChangeLog to ChangeLog.libffi

commit 6257f07d1a9efd27fa83639cfba281f5d3188731
Author: tromey <tromey>
Date:   Thu Feb 14 20:33:17 2008 +0000

            * aclocal.m4, Makefile.in, configure, fficonfig.h.in: Rebuilt.
            * mdate-sh, texinfo.tex: New files.
            * Makefile.am (info_TEXINFOS): New variable.
            * doc/libffi.texi: New file.
            * doc/version.texi: Likewise.

commit 4232af563c5509c3760a33e3684a2b958be755e1
Author: green <green>
Date:   Thu Feb 14 16:19:21 2008 +0000

            * Makefile.am (AM_CFLAGS): Don't compile with -D.
            (lib_LTLIBRARIES): Define.
            (toolexeclib_LIBRARIES): Undefine.
            * Makefile.in: Rebuilt.
            * configure.ac: Reset version to 2.99.1.
            * configure.in: Rebuilt.

commit 961543615c31f092b578a4b4cda914db64f9d0fa
Author: green <green>
Date:   Thu Feb 14 15:57:40 2008 +0000

    Fix typo.

commit aeb0abab87222f637fbf352d4effd3b76b52ed26
Author: green <green>
Date:   Thu Feb 14 15:54:27 2008 +0000

          * libffi.pc.in: Usse @PACKAGE_NAME@ and @PACKAGE_VERSION@.
            * configure.ac: Reset version to 2.99.1.
            * configure.in: Rebuilt.
            * Makefile.am (EXTRA_DIST): Add ChangeLog.libffi.
            * Makefile.in: Rebuilt.
            * LICENSE: Update copyright notice.

commit 77fe243556433eae119d8bd7469bfccdd5bd8a1a
Author: green <green>
Date:   Thu Feb 14 15:37:00 2008 +0000

    Fix make dist again

commit d4970cf4529459bf0f0e43c602cac396786c6802
Author: green <green>
Date:   Thu Feb 14 15:18:56 2008 +0000

    Fix make dist

commit f0b1462f2d3024922ad71421bd5c4311fcb16da5
Author: green <green>
Date:   Thu Feb 14 15:01:41 2008 +0000

    Use pkgconfig.  Increment libtool CURRENT version.

commit 27e52f33baa069012a5adb2a3807f9ca1f2165ab
Author: green <green>
Date:   Sun Feb 3 13:59:48 2008 +0000

    Fix header installs when using DESTDIR.

commit fadab28eb6e33fb6dcdd7b9323e147142216d548
Author: twall <twall>
Date:   Sun Feb 3 12:32:22 2008 +0000

    update changelog

commit b5e44c8dfa92c87b99762c303cf5574a16db8f27
Author: twall <twall>
Date:   Sun Feb 3 01:12:32 2008 +0000

    offset from code base address, not data base address

commit f359848d1a995c0e44566d815f218729dc996e22
Author: green <green>
Date:   Fri Feb 1 21:29:43 2008 +0000

    Fix header installs.

commit c30df49e157c7bfc8e19e3f8a72b9464fe225e54
Author: green <green>
Date:   Fri Feb 1 21:13:55 2008 +0000

    Revert my broken changes to twall's patch.

commit 675561bb9aa0732c76698df10dd3007b5d0ec759
Author: green <green>
Date:   Thu Jan 31 13:44:25 2008 +0000

    Fix make dist .

commit abc0bbf3813dc43e23d4c23e6fe794dbf287639b
Author: green <green>
Date:   Thu Jan 31 11:58:57 2008 +0000

    Add Tim Wall's x86 windows patch.

commit e332366d15a31198735b593ec8f7fc0558d783b8
Author: green <green>
Date:   Wed Jan 30 13:21:02 2008 +0000

    Add HJ's -fomit-frame-pointer struct return fix

commit d4204240392af5b7750a08671b08e9c22dff5e93
Author: green <green>
Date:   Wed Jan 30 12:42:34 2008 +0000

    Clean up for new automake.

commit f4932dd020df574637c9fb3fc1bb18e5a8f304cc
Author: green <green>
Date:   Wed Jan 30 12:40:25 2008 +0000

    Fixes to run testsuite

commit 085520ddc8db6a916bfc416b871fcb2d00074d40
Author: green <green>
Date:   Tue Jan 29 15:16:43 2008 +0000

    New files from gcc tree.

commit 77175b3f7234e4875a4ef554ed1fe9fdc4133794
Author: green <green>
Date:   Tue Jan 29 15:15:20 2008 +0000

    Latest gcc svn sources

commit 2544e45a0b2b634053df02da3a2ed9680eeed2a1
Author: green <green>
Date:   Tue Jan 29 14:28:13 2008 +0000

    Install ffitarget.h in $prefix/include.

commit 6002211b1cc4daeb587d054b4f83968bda2c981e
Author: green <green>
Date:   Tue Jan 29 12:30:10 2008 +0000

    Add new files.

commit ccabd2b16be883cd03e5f0cd88ccfdd6ca39239d
Author: green <green>
Date:   Tue Jan 29 12:28:15 2008 +0000

    Merge from gcc

commit e680ecfbfca1da8d1823e48bc89b8375e66e128b
Author: tromey <tromey>
Date:   Sun Dec 24 23:12:15 2006 +0000

    Pulled in libffi from gcc trunk.
    Fixed build and install for standalone use.

commit e7ba08965942ce872fdbc69f70f9848cc3d0bad6
Author: root <root>
Date:   Sun Jun 4 23:22:24 2006 +0000

    sourcware.org

commit 0cd4aa24e21aaa964dfbdebc25ec5c8188049375
Author: root <root>
Date:   Sun May 30 01:51:57 2004 +0000

    Add LockDir

commit 5826120fbd940d26cca76ed2522187505581e1ed
Author: green <green>
Date:   Tue Nov 4 06:09:08 2003 +0000

    Add link to Gianni's web site.

commit 220aa4b27db42d7ffaac5056000d5179f00d5ea3
Author: jsm <jsm>
Date:   Tue Jan 21 08:07:42 2003 +0000

    Newer, better, increased from before!  (list of acceptable anon usernames)

commit 1c3adc892cc1403dc4d3d7003a2385899836612e
Author: green <green>
Date:   Fri Dec 6 01:28:03 2002 +0000

    Fixed Cygnus references.

commit 4af66bb62fab9a8e318af3bf01e5486596a0c8d4
Author: green <green>
Date:   Sun Oct 21 19:18:42 2001 +0000

    Testsuite fixes.

commit 5435965f9015ce40584c98d3816c3d05e7de1d21
Author: green <green>
Date:   Mon Apr 23 00:32:03 2001 +0000

            * include/ffi_common.h: Delete, after moving contents to...
            * include/ffi_private.h: Subsume contents of ffi_common.h.
            * include/Makefile.am (noinst_HEADERS): Remove ffi_common.h.
            * include/Makefile.in: Rebuilt.
            * arm/ffi.c, m68k/ffi.c, mips/ffi.c, powerpc/ffi.c, s390/ffi.c,
            ia64/ffi.c: Include ffi_private.h, not ffi_common.h.
            * alpha/ffi.c, sparc/ffi.c, x86/ffi.c: Don't include ffi_common.h.
            * types.c, raw_api.c, java_raw_api.c, prep_cif.c: Don't include
            ffi_common.h.
            * debug.c: Include ffi_private.h instead of ffi_common.h.
    
            * mips/ffi.c (calc_n32_struct_flags): Make static.
            (FIX_ARGP): Remove call to debugging routine ffi_stop_here.
    
            * mips/n32.S: Include ffi_private.h.
            * mips/o32.S: Include ffi_private.h.

commit 6fdb7de0fe3b7385e1fd78812ae69d9b3069d994
Author: green <green>
Date:   Sun Apr 22 19:38:34 2001 +0000

            * README: Update some comments.
    
            * Makefile.am (SUBDIRS): Add include so ffi.h gets installed.
            * Makefile.in: Rebuilt.
    
            * include/ffi.h: Change ALPHA to __alpha__ and SPARC to __sparc__.
            * types.c: Ditto.
            * prep_cif.c (ffi_prep_cif): Ditto.
    
            * alpha/ffi.c, alpha/osf.S, sparc/ffi.c, sparc/v8.S, sparc/v9.S:
            Include ffi_private.h.
    
            * include/ffi_private.h (FFI_TYPE_LAST): Define.

commit bc7144b01b9707ef35f1a2e3e6996e005e82953a
Author: green <green>
Date:   Sun Apr 22 18:28:36 2001 +0000

    Moved files from old home

commit e57279831e20368c1aa1d2b35462b8629be73959
Author: green <green>
Date:   Sun Apr 22 18:23:47 2001 +0000

    These are dead.

commit 7247436b5fe71767b29dc02b4da0fe18b08082e6
Author: green <green>
Date:   Sun Apr 22 18:22:43 2001 +0000

    All these files live somewhere else now.

commit a8b0d40ff908e275028f676870c31d0d70274a98
Author: green <green>
Date:   Sun Apr 22 18:17:14 2001 +0000

    Many changes.  Not quite there yet.

commit f893d2273355710a290a26faebf5f12c3a34d0e3
Author: green <green>
Date:   Sun Apr 22 18:13:22 2001 +0000

    Moved m68k files

commit 688ddfeced89cbb9d37b53005e1f7f2b9c78a8d7
Author: green <green>
Date:   Sun Apr 22 18:12:33 2001 +0000

    New, target indepentent, header

commit f9e40776d488d5ecf43b3ae21444a1a2f6eca528
Author: green <green>
Date:   Sun Apr 22 18:11:57 2001 +0000

    Many changes.

commit 8c1d2eb47f6bc314c431b75c85c107e8e43c4a76
Author: green <green>
Date:   Sun Apr 22 18:10:47 2001 +0000

    Many changes

commit 1359dfc6582680a158b3caa3efb7a368da4aa12d
Author: green <green>
Date:   Sun Apr 22 18:10:20 2001 +0000

    Moved ia64 files

commit 6e2de5eee316a4579869aff50c7c5f6f478582d8
Author: green <green>
Date:   Sun Apr 22 18:08:11 2001 +0000

    Moved arm files

commit 8807355af34cba8ffe87aee51152dfccec2771fa
Author: green <green>
Date:   Mon Apr 9 00:58:38 2001 +0000

    Many many updates.  Merge from gcc and then some.

commit f7e9f91adec4ff1c2e7a13b3de81d2c5a3f55e7e
Author: green <green>
Date:   Mon Apr 17 03:32:37 2000 +0000

    Mnay fixes.

commit c4860de618f4956283f5c8230a2544e403dfe390
Author: green <green>
Date:   Mon Apr 17 03:18:46 2000 +0000

    Merge from libgcj.  Merged patches from net.  See ChangeLog for details.

commit c578b58314990c3853429297c38ba14015fec5fa
Author: jsm <jsm>
Date:   Sat Oct 9 20:18:16 1999 +0000

    1999-10-09  Jason Molenda  (jsm@bugshack.cygnus.com)
    
            * CVSROOT/auto_checkout, CVSROOT/commit_prep, CVSROOT/log_accum:
            Deleted; generic versions now used for all repositories.
    
            * CVSROOT/commitinfo, CVSROOT/loginfo:  Change pathnames to
            generic versions.
    
            * CVSROOT/checkoutlist:  Don't try to check out the removed
            files any longer.

commit acdb20051207fed7652dd9f122f65de5458c474c
Author: jsm <jsm>
Date:   Sat Oct 9 20:18:15 1999 +0000

    1999-10-09  Jason Molenda  (jsm@bugshack.cygnus.com)
    
            * CVSROOT/auto_checkout, CVSROOT/commit_prep, CVSROOT/log_accum:
            Deleted; generic versions now used for all repositories.
    
            * CVSROOT/commitinfo, CVSROOT/loginfo:  Change pathnames to
            generic versions.
    
            * CVSROOT/checkoutlist:  Don't try to check out the removed
            files any longer.

commit e75be655ceedf7ab24c4e99d75eec9efeb979bc7
Author: green <green>
Date:   Sun Aug 8 13:16:41 1999 +0000

    New configury

commit d6669a0dd5b266005325bbf6d5a8ff34574d809e
Author: green <green>
Date:   Sun Aug 8 13:05:12 1999 +0000

            * include/ffi.h.in: Try to work around messy header problem
            with PACKAGE and VERSION.
    
            * configure: Rebuilt.
            * configure.in: Change version to 2.00-beta.
    
            * fficonfig.h.in: Rebuilt.
            * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
    
            * src/x86/ffi.c (ffi_raw_call): Rename.

commit 4819d52b007934a40d6d29a75ee30e857c4a93ae
Author: green <green>
Date:   Wed Aug 4 18:02:34 1999 +0000

    New file for Kresten's closure work

commit 2dbf801eb427cbf5021a9e1e512b5fc523524700
Author: green <green>
Date:   Wed Aug 4 18:00:05 1999 +0000

    Kresten's closure work. Initial checkin.

commit d170961701b0f2bf7e824d7caba2ebe10002ed84
Author: green <green>
Date:   Thu Jul 8 14:36:52 1999 +0000

            * configure.in: Add x86 and powerpc BeOS configurations.
            From Makoto Kato <m_kato@ga2.so-net.ne.jp>.

commit c7747d976924ec6f2229cbcfbbdb98d364e10de9
Author: jsm <jsm>
Date:   Wed May 12 23:32:16 1999 +0000

    1999-05-12  Jason Molenda  (jsm@bugshack.cygnus.com)
            * index.html: Add links to libffi* mail list archives.

commit dd2aa9a8de22e26df3bbc85d068358641f6202f7
Author: green <green>
Date:   Thu May 6 05:34:36 1999 +0000

            * configure.in: Add warning about this being beta code.
            Remove src/Makefile.am from the picture.
            * configure: Rebuilt.
            * Makefile.am: Move logic from src/Makefile.am.  Add changes
            to support libffi as a target library.
            * Makefile.in: Rebuilt.
            * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
            Upgraded to new autoconf, automake, libtool.
            * README: Tweaks.
            * LICENSE: Update copyright date.
            * src/Makefile.am, src/Makefile.in: Removed.

commit 4e9452abed58a3058ccdb446f96a29d50dda1f34
Author: green <green>
Date:   Wed May 5 22:06:13 1999 +0000

    Updated to new automake, libtool, autoconf - nothing works :-)

commit 6d3b2bddaf4967fba8b8656c01bfc77ec0f2800c
Author: jsm <jsm>
Date:   Mon Apr 26 15:55:28 1999 +0000

    1999-04-26  Jason Molenda  (jsm@bugshack.cygnus.com)
            * index.html: Missed a reference to libffi-discuss@cygnus.com.  Fixed.

commit ebc6a9c28af831d3d187af8ff17319f0f309bd98
Author: jsm <jsm>
Date:   Mon Apr 26 15:53:29 1999 +0000

    1999-04-26  Jason Molenda  (jsm@bugshack.cygnus.com)
            * index.html: Change links to ftp directory to point to sourceware
            directory.
            Change mailing list subscription forms to point to sourceware lists.

commit 78ffc52a8b257061348c576ccb6fbbf8b48b0fff
Author: jsm <jsm>
Date:   Sun Apr 18 01:33:21 1999 +0000

    Standard sourceware setup.

commit b4d77e827d7ebef7e57ebcd71e71c15c62f1e0a8
Author: jsm <jsm>
Date:   Mon Nov 30 11:11:25 1998 +0000

    Small typeo.  (I wouldn't bother except that it made the sentence hard
    for me to parse on a casual read.)

commit bfb73f08fdc987e37070c5fb0b196fbd28872888
Author: jsm <jsm>
Date:   Mon Nov 30 10:44:55 1998 +0000

    A few cleanups.  Most notably, point to the correct subscribe cgi-bin
    script.

commit af8b7f037ccee3b7939ee226a1a2bbc2f057b35c
Author: green <green>
Date:   Mon Nov 30 06:20:05 1998 +0000

            * index.html: Reformatted and updated to reflect hosting on
            sourceware.cygnus.com (new mailing lists, etc).

commit 334f0b060942aff8d26badaf7dde7830450dc5da
Author: green <green>
Date:   Sun Nov 29 16:56:12 1998 +0000

    initial snapshot of documentation

commit 3ab5cb4a1dcc7ecd7e773c97582b0099976c4753
Author: green <green>
Date:   Sun Nov 29 16:56:10 1998 +0000

    Initial revision

commit d2a9eb5a8b7cbc8b769809cad59c82b975c178e2
Merge: d3782ec bc75c54
Author: green <green>
Date:   Sun Nov 29 16:48:16 1998 +0000

    This commit was generated by cvs2svn to compensate for changes in r7, which
    included commits to RCS files with non-trunk default branches.

commit bc75c54bd311658005b065f1bf201b204c81cbca
Author: green <green>
Date:   Sun Nov 29 16:48:16 1998 +0000

    Import of v1 code.

commit d3782ec8160c644421dcea17b605fec6e328f14e
Author: jsm <jsm>
Date:   Fri Nov 20 20:18:00 1998 +0000

    Send commit messages to mailing lists.

commit 8d8d3843c484c2bb70d8375b2b799f75eb03f709
Author: jsm <jsm>
Date:   Thu Oct 1 22:08:36 1998 +0000

    initial checkin

commit 49634f3bf221cc1939abafc788f7e4e31293fe73
Author: jsm <jsm>
Date:   Thu Oct 1 22:08:35 1998 +0000

    Add standard setup.

commit c64a84c7693f8cd400fb94bba3c9bcfd9ad1fc36
Author: jsm <jsm>
Date:   Thu Oct 1 22:08:34 1998 +0000

    Add readers and standard modules file.

commit 9813273b07fd082da573b3b6bfb8d23809b59eea
Author: jsm <jsm>
Date:   Thu Oct 1 22:08:33 1998 +0000

    initial checkin
