Branch


Log

Author Commit Date CI Message
Thomas de Grivel 7822a324 2024-01-10T00:28:25 aarch64 c99
Thomas de Grivel cb01c208 2023-12-11T12:15:19 x86 c99
Thomas de Grivel 25741389 2023-08-20T13:34:54 ignore libffi.map
Thomas de Grivel 441a0136 2023-08-15T13:50:14 sparc
Thomas de Grivel 34e186c9 2023-08-07T12:29:45 ignore local files
Thomas de Grivel 6edec9e6 2023-08-05T19:09:41 remove build dirs
Thomas de Grivel f8390132 2023-08-05T17:42:54 dnl AC_CHECK_INCLUDES_DEFAULT
Thomas de Grivel 04688867 2023-08-04T19:59:39 tramp
Thomas de Grivel f1d10cab 2023-08-04T13:56:10 ffi64.c
Thomas de Grivel cd33181a 2023-03-06T22:17:07 autoconf
Thomas de Grivel c43eae24 2023-03-06T16:08:49 fix compatibility with C99
Anthony Green f08493d2 2023-02-17T20:35:44 Mention ARCv3 work
Claudiu Zissulescu c4df19c9 2023-02-18T03:33:47 Update ARC's libffi port (#771) * Add support for ARC and ARC64 Add support for ARC/ARC32/ARC64 * Implementation of GO Closure for ARC/ARC32/ARC64 Architectures --------- Co-authored-by: Nuno Cardoso <cardoso@synopsys.com> Co-authored-by: Luis Silva <luiss@synopsys.com>
Anthony Green 23752064 2023-02-09T12:23:35 Normalize libffi labels
Anthony Green ca268015 2023-02-09T10:31:22 Use rlgl
Hood Chatham 7d23c2d2 2023-02-09T06:01:37 Add emscripten gha workflow (#768) Resolves issue #767
Anthony Green 883f5ae6 2023-02-05T09:51:37 Rename label
Hood Chatham 678dad5a 2023-02-02T14:48:07 Use libffi-dg-prune to handle Emscripten INFO messages rather than patching emcc.py (#766)
Anthony Green 7d03d3a3 2023-02-02T16:09:14 Mention wasm32
Anthony Green c267c72f 2023-02-02T16:04:34 Modernize
Hood Chatham 2687cfc5 2023-02-02T09:10:00 Add wasm32 emscripten support (#763) * added build script * Apply libffi-emscripten patch * Some changes to wasm32/ffi.c * Remove exit(0); from test suites * Fix LONGDOUBLE argument type * Use more macros in ffi.c * Use switch statements instead of if chains * Implemented struct args * Finish struct implementation * Partially working closures * Got closures working (most of closures test suite passes) * Revert changes to test suite * Update .gitignore * Apply code formatter * Use stackSave and stackRestore rather than directly adjusting stack pointer * Add missing break * Fix visibility of ffi_closure_alloc and ffi_closure_free * Fix FFI_TYPE_STRUCT and FFI_TYPE_LONGDOUBLE when WASM_BIGINT is not used sig needs to be vi here for FFI_TYPE_STRUCT and FFI_TYPE_LONGDOUBLE, noticed this while running the test suite without WASM_BIGINT support. * Always use dynCall rather than direct wasmTable lookup (function pointer cast emulation changes dynCall) * Prevent closures.c from duplicating symbols * Try to set up CI * Add test with bigint * Make test methods static * Remove BigInt shorthand because it messes up terser * Add selenium tests * Update tests a bit to try to make CI work * WASM_BIGINT is a linker flag not a compile flag * Finish getting CI working (#1) * update gitignore * Avoid adding "use strict;" to generated JS This should be controlled by -s STRICT_JS in Emscripten. * Make JavaScript ES5 compliant * Remove redundant EXPORTED_RUNTIME_METHODS settings * Fix definition of DEREF_I16 * Avoid marshalling FFI_TYPE_LONGDOUBLE when WASM_BIGINT is not used * Add missing FFI_TYPE_STRUCT signature * Improve test scripts * Remove redundant EXPORTED_RUNTIME_METHODS settings * Add missing EOL * Add struct unpacking tests * Update ci config to try to actually use WASM_BIGINT * Revert "Avoid marshalling FFI_TYPE_LONGDOUBLE when WASM_BIGINT is not used" This reverts commit 61bd5a3e20891623715604581b6e872ab3dfab80. * Fix single_entry_structs tests * Fix return from closure call * Fix 64 bit return from closures * only allocate as much space on stack for return pointer as needed * Revert "only allocate as much space on stack for return pointer as needed" This reverts commit e54a30faea3803e7ac33eed191bde9e573850fc1. * xfail two tests * Fix err_bad_abi test * Remove test logging junk * Try to set up long double marshalling for closures * xfail err_bad_abi * Fix reference errors in previous commit * Add missing argument pointer assignment * Fix signature of function pointer in cls_dbls_struct * Fix longdouble argument * Try some changes to bigint handling * Fix BigInt handling * Fix cls_longdouble test * Fix long double closure arg with no WASM_BIGINT * Use EM_JS to factor out js helpers * Support for varargs closure calls * Fix varargs calls * Fix err_bad_abi test * Fix typo in previous commit * Add more assertions to closures test suite * Fix some asserts * Add assertions to a few more tests * Fix some tests * Fix more floating point assertions * Update more tests * Var args for ffi_call * Don't do node tests * Macro for allocating on stack * Add some comments, simplify struct handling * Try again to fix varargs calls, add comments * Consolidate WASM_BIGINT conditionals into LOAD_U64 and STORE_U64 macros * A bit of cleanup * Fix another typo * Some fixes to the testsuite * Another testsuite fix * Fix varags with closures? * Another attempt at getting closure varargs to work * sig is initialized later * Allow libffi.closures tests to be run * Improve build script * Remove redundant semicolons * Fix a few libffi.closures test failures * Cleanup * Legacy dynCall API is no longer used * Fix FFI_TYPE_LONGDOUBLE offset * xfail 2 tests for WASM - closure_loc_fn0; not applicable -- codeloc doesn't point to closure. - huge_struct; function signature too long. * Revert some redundant dg-output/printf statements Helps Node. * Revert "Don't do node tests" This reverts commit a341ef4b. * Fix assertions in cls_24byte * More tiny formating fixes to test suite * Revert "Revert "Don't do node tests"" This reverts commit 7722e685ea04e2420e042886816d8c4dd31f5dcb. * Fix 64 bit returns when WASM_BIGINT is absent * Fix print statement in cls_24byte * Add CALL_FUNC_PTR macro to allow pyodide to define custom calling behavior to handle fpcast * Update single_entry_structs tests * More explanations * Fix compile error in last commit * Add more support for pyodide fpcast emulation, update CI to try to test it * Clone via https * Fix path to pyodide emsdk_env * Add asserts to the rest of the test suite * Fix test compile errors * Fix some tests * Fix cls_ulonglong * Fix alignment of <4 byte args * fix cls_ulonglong again * Use snprintf instead of sprintf * Should assert than strncmp returned 0 * Fix va_struct1 and va_struct3 * Change double and long double tests These tests are failing because of a strange bug with prinft and doubles, but I am not convinced it necessarily has anything to do with libffi. This version casts the double to int before printing it and avoids the issue * Enable node tests * Revert "Change double and long double tests" This reverts commit 8f3ff89c6577dc99564181cd9974f2f1ba21f1e9. * Fix PYODIDE_FPCAST flag * add conftest.py back in * Fix emcc error: setting `EXPORTED_FUNCTIONS` expects `<class 'list'>` but got `<class 'str'>` See discussion on https://github.com/pyodide/pyodide/pull/1596 * Remove test.html * Remove duplicate test file * More changes from upstream * Fix some whitespace * Add some basic debug logging statements * Reapply libffi.exp changes * Don't build docs (#7) Works around build issue makeinfo: command not found. * Update long double alignment Emscripten 2.0.26 reduces the aligmnet of long double to 8. Quoting from `ChangeLog.md`: > The alignment of `long double`, which is a 128-bit floating-point > value implemented in software, is reduced from 16 to 8. The lower > alignment allows `max_align_t` to properly match the alignment we > use for malloc, which is 8 (raising malloc's alignment to achieve > correctness the other way would come with a performance regression). > (#10072) * Update long double alignment Emscripten 2.0.26 reduces the aligmnet of long double to 8. Quoting from `ChangeLog.md`: > The alignment of `long double`, which is a 128-bit floating-point > value implemented in software, is reduced from 16 to 8. The lower > alignment allows `max_align_t` to properly match the alignment we > use for malloc, which is 8 (raising malloc's alignment to achieve > correctness the other way would come with a performance regression). > (#10072) * Improve error handling a bit (#8) * Fix handling of signed arguments to ffi_call (#11) * Fix struct argument handling in ffi_call (#10) * Remove fpcast emulation tests * Align the stack to MAX_ALIGN before making call (#12) * Increase MAX_ARGS * Cleanup (#14) * Fix Closure compiler error with -sASSERTIONS=1 (#15) * Remove function pointer cast emulation (#13) This reverts commit 593b402 and cbc54da, as it's no longer needed after PR pyodide/pyodide#2019. * Prefer the `__EMSCRIPTEN__` definition over `EMSCRIPTEN` (#18) "The preprocessor define EMSCRIPTEN is deprecated. Don't pass it to code in strict mode. Code should use the define __EMSCRIPTEN__ instead." https://github.com/emscripten-core/emscripten/blob/84a634167a1cd9e8c47d37a559688153a4ceace6/emcc.py#L887-L890 * Install autoconf 2.71 * Try again with installing autoconf 2.71 * Fix compatibility with Emscripten 3.1.28 * CI: remove use of `EM_CONFIG` env See commit: https://github.com/emscripten-core/emsdk/commit/3d87d5ea8143b3636f872fb05b896eb4a19a070b * Fix cls_multi_schar: cast rest_call to signed char * Remove test xfails (#17) * Fix long double when used as a varargs argument * Enable unwindtest and fix it * Add EM_JS_DEPS * Also require convertJsFunctionToWasm * Run tests very very verbose * Echo the .emscripten file * Remove --experimental-wasm-bigint insertion * Build with assertions * Move verbosity flags back out of LDFLAGS * Remove debug print statement * Use up to date pyodide docker image * Explicitly cast res_call to fix test failure * Put back name of main function in cls_longdouble_va.c * Fix alignment The stack pointer apparently needs to be aligned to 16. There were some terrible subtle bugs caused by not respecting this. stackAlloc knows that the stack should be 16 aligned, so we can use stackAlloc(0) to enforce this. This way if alignment requirements change, as long as Emscripten updates stackAlloc to continue to enforce them we should be okay. * Fix handling of systems with no Js bigint integration When we run the node tests we use node v14 tests (since node v14 is vendored with Emscripten). Node v14 has no Js bigint integration unless the --experimental-wasm-bigint flag is passed. So only the node tests really notice if we get this right. Turns out, it didn't work. We can't call a JavaScript function with 64 bit integer arguments without bigint integration. In ffi_call, we are trying to call a wasm function that takes 64 bit integer arguments. dynCall is designed to do this. We need to go back to tracking the signature when we don't have WASM_BIGINT, and then use dynCall. This works better now that emscripten can dynamically fill in extra dynCall wrappers: https://github.com/emscripten-core/emscripten/pull/17328 On the other hand, for the closures we are not getting a function pointer as a first argument. We need to make our own wasm legalizer adaptor that splits 64 bit integer arguments and then calls the JavaScript trampoline, then the JavaScript trampoline reassembles them, calls the closure, then splits the result (if it's a 64 bit integer) and the adaptor puts it back together. * Improvements to emscripten test shell scripts (#21) This fixes the C++ unwinding tests and makes other minor improvements to the Emscripten test shell scripts. * Rename the test folder and move test files into emscripten test folder * Use docker image that has autoconf-2.71 * Cleanup * Pin emscripten 3.1.30 * Fix build.sh path * Rearrange ci pipeline * Fix bpo_38748 test * Cleanup * Improvements to comments, add static asserts, and update copyright * Use `*_js` instead of `*_helper` for EM_JS functions (#22) * Minor code simplification * Xfail first dejagnu test to work around emscripten cache messages See https://github.com/emscripten-core/emscripten/issues/18607 * Remove unneeded xfails * Shorten conftest.py by using pytest-pyodide * Apply formatters and linters to emscripten directory * Fix Emscripten xfail hack * Fix build-tests script * Patch emscripten to quiet info messages * Clean up compiler flags in scripts and remove some settings from circleci config * Rename emscripten quiet script * Add missing export * Don't remove go.exp * Add reference to emscripten logging issue --------- Co-authored-by: Kleis Auke Wolthuizen <info@kleisauke.nl> Co-authored-by: Kleis Auke Wolthuizen <github@kleisauke.nl> Co-authored-by: Christian Heimes <christian@python.org>
serge-sans-paille ce077e55 2023-02-02T14:46:29 Forward declare open_temp_exec_file (#764) It's defined in closures.c and used in tramp.c. Also declare it as an hidden symbol, as it should be. Co-authored-by: serge-sans-paille <sguelton@mozilla.com>
Anthony Green abf211d1 2023-02-02T07:06:02 Mention HPPA fixes
Anthony Green 222abd0c 2023-02-02T07:04:55 From Dave Anglin: This patch is derived from the work done in implementing libffi for 64-bit hppa64-hpux target. Currently, the 32-bit hppa targets do a linear search for the return type of an ffi_call. This is slow and inefficient. A jump table can used to jump directly to the code used to process the return value. In most common cases, the return value can be processed in the jump table itself. The patch also fixes return handling for FFI_TYPE_UINT8, FFI_TYPE_SINT8, FFI_TYPE_UINT16 and FFI_TYPE_SINT16.
Anthony Green e58e22b2 2023-02-02T07:02:53 From Dave Anglin: A couple of years ago the 32-bit hppa targets were converted from using a trampoline executed on the stack to the function descriptor technique used by ia64. This is more efficient and avoids having to have an executable stack. However, function pointers on 32-bit need the PLABEL bit set in the pointer. It distinguishes between pointers that point directly to the executable code and pointer that point to a function descriptor. We need the later for libffi. But as a result, it is not possible to convert using casts data pointers to function pointers. The solution at the time was to set the PLABEL bit in hppa closure pointers using FFI_CLOSURE_PTR. However, I realized recently that this was a bad choice. Packages like python-cffi allocate their own closure pointers, so this isn't going to work well there. A better solution is to leave closure pointers unchanged and only set the PLABEL bit in pointers used to point to executable code. The attached patch drops the FFI_CLOSURE_PTR and FFI_RESTORE_PTR defines. This allows some cleanup in the hppa closure routines. The FFI_FN define is now used to set the PLABEL bit on hppa. ffi_closure_alloc is modified to set the PLABEL bit in the value set in *code. I also added a FFI_CL define to convert a function pointer to a closure pointer. It is only used in one test case.
Anthony Green baa6bbbc 2023-02-02T06:59:46 Add HPPA64 support
Iain Sandoe e70dd1aa 2023-02-02T11:44:13 libffi: Fix X86 32b Darwin build and EH frames. (#757) This addresses a number of issues in the X86 Darwin 32b port for libffi. 1. The pic symbol stubs are weak definitions; the correct section placement for these depends on the linker version in use. We do not have access to that information, but we can use the target OS version (assumes that the user has installed the latest version of xcode available). When a coalesced section is in use (OS versions earlier than Darwin12 / OSX 10.8), its name must differ from __TEXT,__text since otherwise that would correspond to altering the attributes of the .text section (which produces a diagnostic from the assembler). Here we use __TEXT, __textcoal_nt for this which is what GCC emits for these stubs. For later versions than Darwin 12 (OS X 10.8) we can place the stubs in the .text section (if we do not we get a diagnostic from clang -cc1as saying that the use of coalesced sections for this is deprecated). 2. The EH frame is specified manually, since there is no support for .cfi_ directives in 'cctools' assemblers. The implementation needs to provide offsets for CFA advance, code size and to the CIE as signed values rather than relocations. However the cctools assembler will produce a relocation for expressions like ' .long Lxx-Lyy' which then leads to a link-time error. We correct this by forming the offset values using ' .set' directives and then assigning the results of them. 3. The register numbering used by m32 X86 Darwin EH frames is not the same as the DWARF debug numbering (the Frame and Stack pointer numbers are swapped). 4. The FDE address encoding used by the system tools is '0x10' (PCrel + abs) where the value provided was PCrel + sdata4. 5. GCC does not use compact unwind at present, and it was not implemented until Darwin10 / OSX 10.6. There were some issues with function location in 10.6 so that the solution here suppresses emitting the compact unwind section until Darwin11 / OSX 10.7.
Iain Sandoe 7effe999 2023-02-02T11:42:46 Darwin: Search for both shared and convenience libraries in each path. (#761) For several Darwin linker versions, the default behaviour is to first traverse the set of library paths, looking for shared libraries, and then a second time looking for archives. This means that if the library is configured --disable-shared the installed system version /usr/lib/libffi.dylib will be found before the archive under test. Using the linker option '-search-paths-first' alters the strategy to search each path for dylib and then archive before moving on to the next.
serge-sans-paille ebbc5e14 2023-02-02T11:40:17 Fix signed vs unsigned comparison (#765) As reported by -Wsign-compare. In the case of getting the result of comparing the result of sysconf (_SC_PAGESIZE) to other value, this also correctly handles edge cases where the above fails and returns -1. Co-authored-by: serge-sans-paille <sguelton@mozilla.com>
Anthony Green 7611bb4c 2023-01-08T09:01:00 Use checkout@v3, with nodejs 16
YongKang Zhou 3a8bb6bb 2023-01-08T21:56:34 fix typo (#758) `mingW` -> `MinGW`
Alexander Kanavin 00116b6d 2022-12-05T03:20:09 arm/sysv: reverted clang VFP mitigation (#747) Since commit e3d2812ce43940aacae5bab2d0e965278cb1e7ea, seperate instructions were used when compiling under clang, as clang didn't allow the directives at the time. This mitigation now causes compilation to fail under clang 10, as described by https://github.com/libffi/libffi/issues/607. Now that clang supports the LDC and SDC instructions, this mitigation has been reverted. Co-authored-by: Brett Warren <brett.warren@arm.com>
Anthony Green c50c16d0 2022-11-20T12:20:40 Fix large struct passing on PA-RISC
Anthony Green c6dc125a 2022-10-25T10:28:19 Add missing test cases
Xavier Claessens 2b2f61f6 2022-10-24T20:39:04 Small build cleanup (#743) * configure.ac: Remove some unused checks * Fix FFI_API definition When doing a static build dllimport/dllexport should be disabled. It was also using 2 different macros FFI_BUILDING_DLL and FFI_BUILDING for no reason.
Anthony Green f24180be 2022-10-23T20:17:29 Update to version 3.4.4
Anthony Green 848052fa 2022-10-23T11:25:10 More aarch64 fixes
Icecream95 af0f14cd 2022-10-24T04:08:10 Fix types of temporary variables in aarch64 extend_integer_type (#745) Fixes truncated values in weston-info output.
musvaage f7233db2 2022-10-17T17:26:17 typos (#742)
Anthony Green 45e49295 2022-10-16T12:41:56 Add 32-bit cygwin test
Anthony Green 93cfb655 2022-10-10T14:32:35 Correction for older compilers
Andreas Schwab 77a0fb82 2022-10-10T17:59:04 Flush output before aborting (#740) Co-authored-by: Andreas Schwab <schwab@suse.de>
Andreas Schwab 3874fd98 2022-10-10T17:58:48 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>
Andreas Schwab 4b0c358e 2022-10-10T17:57:47 riscv: make copies of structs passed by reference (#738) Co-authored-by: Andreas Schwab <schwab@suse.de>
Anthony Green c163d93a 2022-10-08T18:35:38 Add gcc-12 testing for aarch64 linux
Anthony Green 62fd1f21 2022-10-02T13:03:37 Tweak quotes
Anthony Green e1d1b094 2022-09-28T10:16:45 Add .
Anthony Green b45f6894 2022-09-28T10:16:01 Update README for 3.4.4.
Anthony Green 817a43fb 2022-09-28T09:05:45 Revert to previous cfi check. (#735)
Anthony Green 963c4a96 2022-09-27T22:05:42 Remove nested comments
Anthony Green e9e44157 2022-09-27T21:25:30 Don't tweak path
Anthony Green 4594dcc9 2022-09-27T21:05:26 Fix find
Anthony Green fe68a7b9 2022-09-27T20:29:17 Locate tools
Anthony Green cfb3f4c2 2022-09-27T20:13:42 Use cross tools for Windows
Anthony Green ae544e00 2022-09-27T18:23:06 Fix shell
Anthony Green b8d849bd 2022-09-27T17:58:31 Find ms tools
Anthony Green 9785eee0 2022-09-27T17:39:44 32- and 64-bit Windows
Anthony Green 1421717e 2022-09-27T08:13:17 Add "lto" to triple to identify lto builds
Anthony Green 425acd4c 2022-09-27T07:57:37 Try aarch64 linux with -flto
Anthony Green c4261a05 2022-09-26T16:45:00 Show compiler version
Anthony Green a1467200 2022-09-26T11:41:48 Never link pthread for android
Frederik Seiffert 5ce26a0e 2022-09-26T13:43:40 CI: add Android builds (#732)
Anthony Green 55bcc477 2022-09-24T22:03:52 Test idea borrowed from cpython
Anthony Green a2473cde 2022-09-24T21:41:02 or1k: All struct args are passed in memory
Anthony Green f93224d3 2022-09-24T21:38:57 moxie: All struct args are passed in memory
Anthony Green e79f1948 2022-09-24T17:11:30 Add test case transcribed from cpython
Anthony Green ab960387 2022-09-19T19:42:35 Set host triplet for native builds
Anthony Green a6fc8165 2022-09-19T19:25:09 Update job names
Anthony Green 6b7fb6ce 2022-09-19T18:23:42 Give better names to CI workflows
Anthony Green f0675ab7 2022-09-19T17:30:51 Update version to 3.4.4-experimental
Hans e3eaa609 2022-09-19T23:26:59 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 <>
Anthony Green 84817695 2022-09-19T13:31:46 Fix typo
Anthony Green 53338d2b 2022-09-19T13:07:50 Update version
Anthony Green 0bd41b75 2022-09-19T12:26:05 Update libtool version
Anthony Green 9b1dd8f2 2022-09-19T12:22:04 Update version to 3.4.3
Anthony Green 0a769ccc 2022-09-19T08:17:15 Update release dates
Anthony Green f26b56e1 2022-09-19T08:15:22 Add new files for distribution
Anthony Green b801b54b 2022-09-19T06:49:32 Mention AIX with GCC
Anthony Green ff34df23 2022-09-19T06:45:19 Update comment about platform support
Anthony Green 598ea692 2022-09-19T06:43:41 Clean ups, preparing for new release
Anthony Green fc6b9390 2022-09-19T06:42:29 Standardize temp exec file creation
Anthony Green 4c2984c4 2022-09-18T15:06:57 Handle win32 ABIs for struct return
Anthony Green b05dc51b 2022-09-18T13:03:10 Debug x86
Anthony Green cafdb837 2022-09-18T12:05:12 Revert
Anthony Green acf0ce9e 2022-09-18T11:04:54 Add test case
Anthony Green b49308ea 2022-09-18T08:26:23 Add missing ABI_ATTR
Anthony Green 735e7be4 2022-09-18T08:21:34 X86 is never defined.
Hans ee22ecbd 2022-09-18T01:56:25 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 <>
Anthony Green 5e010474 2022-09-15T16:57:59 Fix test case for 64-bit mingw
Anthony Green 305cde79 2022-09-15T15:50:35 Passes on 64bit mingw
Anthony Green 05785caf 2022-09-15T15:18:09 Fix arg alignment for STDCALL
Anthony Green 98d4ad65 2022-09-15T09:42:53 Fix test headers
Anthony Green 2abf00a6 2022-09-15T08:25:39 Tweak msys2 tools again
Anthony Green d1b31536 2022-09-15T08:16:26 Fix msys2 tool selection
Anthony Green d352ed36 2022-09-15T08:10:53 Build 32- and 64-bit msys2
Anthony Green 4d0a0384 2022-09-15T07:58:26 msvc requires the printf change, not mingw
Anthony Green a509abf6 2022-09-15T06:45:00 Install unzip
Anthony Green 950ed4a7 2022-09-15T06:33:14 Don't make msys2 default shell
Anthony Green 5d02c0cc 2022-09-15T06:28:23 Try msys2
Anthony Green 64a78fa7 2022-09-15T06:08:30 Try new path