Contents omitted. Just cd to libffi and run `./merge.sh v3.5.2` Merged commit: e2eda0cf72a0598b44278cc91860ea402273fa29
Signed-off-by: Pietro Monteiro <[email protected]> --- libffi/LICENSE | 2 +- libffi/MERGE | 2 +- libffi/Makefile.am | 165 +--- libffi/README.md | 164 +++- libffi/acinclude.m4 | 128 +-- libffi/configure.ac | 229 ++--- libffi/configure.host | 28 +- libffi/doc/libffi.texi | 68 +- libffi/doc/version.texi | 8 +- libffi/generate-darwin-source-and-headers.py | 155 ++-- libffi/include/Makefile.am | 6 +- libffi/include/ffi.h.in | 110 +-- libffi/include/ffi_cfi.h | 4 +- libffi/include/ffi_common.h | 27 +- libffi/libffi.map.in | 19 +- libffi/libtool-version | 4 +- libffi/src/aarch64/ffi.c | 174 ++-- libffi/src/aarch64/ffitarget.h | 4 +- libffi/src/aarch64/internal.h | 80 +- libffi/src/aarch64/sysv.S | 280 ++++-- libffi/src/arc/arcompact.S | 263 +++--- libffi/src/arc/ffi.c | 475 +++++++---- libffi/src/arc/ffitarget.h | 14 + libffi/src/arm/ffi.c | 34 +- libffi/src/arm/sysv.S | 33 - libffi/src/closures.c | 140 +-- libffi/src/debug.c | 4 +- libffi/src/dlmalloc.c | 8 +- libffi/src/ia64/ffi.c | 12 + libffi/src/ia64/unix.S | 22 +- libffi/src/loongarch64/ffi.c | 1 + libffi/src/m32r/ffi.c | 45 +- libffi/src/mips/ffi.c | 317 +++++-- libffi/src/mips/ffitarget.h | 13 +- libffi/src/mips/n32.S | 228 ++++- libffi/src/mips/o32.S | 69 +- libffi/src/moxie/ffi.c | 69 +- libffi/src/or1k/ffi.c | 41 +- libffi/src/pa/ffi.c | 65 +- libffi/src/pa/ffi64.c | 614 ++++++++++++++ libffi/src/pa/ffitarget.h | 30 +- libffi/src/pa/hpux32.S | 119 ++- libffi/src/pa/hpux64.S | 681 +++++++++++++++ libffi/src/pa/linux.S | 121 ++- libffi/src/powerpc/ffi.c | 19 + libffi/src/powerpc/ffi_darwin.c | 60 +- libffi/src/powerpc/ffi_linux64.c | 45 +- libffi/src/powerpc/ffi_sysv.c | 42 +- libffi/src/powerpc/internal.h | 10 + libffi/src/powerpc/linux64_closure.S | 47 ++ libffi/src/powerpc/ppc_closure.S | 24 + libffi/src/powerpc/t-aix | 5 + libffi/src/prep_cif.c | 10 +- libffi/src/riscv/ffi.c | 41 +- libffi/src/s390/ffi.c | 29 +- libffi/src/s390/internal.h | 11 + libffi/src/s390/sysv.S | 38 + libffi/src/sparc/ffi64.c | 24 +- libffi/src/tramp.c | 76 +- libffi/src/types.c | 32 +- libffi/src/wasm/ffi.c | 798 ++++++++++++++++++ libffi/src/wasm/ffitarget.h | 79 ++ libffi/src/x86/ffi.c | 74 +- libffi/src/x86/ffi64.c | 44 +- libffi/src/x86/ffitarget.h | 8 +- libffi/src/x86/ffiw64.c | 20 +- libffi/src/x86/sysv_intel.S | 179 ++-- libffi/src/x86/unix64.S | 35 +- libffi/src/xtensa/ffi.c | 24 +- libffi/src/xtensa/ffitarget.h | 4 + libffi/src/xtensa/sysv.S | 42 +- libffi/testsuite/Makefile.am | 199 ++--- libffi/testsuite/emscripten/build-tests.sh | 34 + libffi/testsuite/emscripten/build.sh | 46 + libffi/testsuite/emscripten/conftest.py | 86 ++ libffi/testsuite/emscripten/node-tests.sh | 23 + libffi/testsuite/emscripten/test.html | 7 + libffi/testsuite/emscripten/test_libffi.py | 51 ++ libffi/testsuite/lib/libffi.exp | 585 ++++++------- libffi/testsuite/lib/target-libpath.exp | 4 +- libffi/testsuite/libffi.bhaible/test-call.c | 1 + libffi/testsuite/libffi.bhaible/testcases.c | 2 +- libffi/testsuite/libffi.call/bpo_38748.c | 41 + libffi/testsuite/libffi.call/callback.c | 99 +++ libffi/testsuite/libffi.call/callback2.c | 108 +++ libffi/testsuite/libffi.call/callback3.c | 114 +++ libffi/testsuite/libffi.call/callback4.c | 119 +++ libffi/testsuite/libffi.call/ffitest.h | 26 +- libffi/testsuite/libffi.call/float_va.c | 3 + libffi/testsuite/libffi.call/longjmp.c | 60 ++ libffi/testsuite/libffi.call/overread.c | 54 ++ libffi/testsuite/libffi.call/pyobjc_tc.c | 114 +++ libffi/testsuite/libffi.call/return_ll1.c | 5 + libffi/testsuite/libffi.call/return_sl.c | 4 + libffi/testsuite/libffi.call/return_ul.c | 4 + libffi/testsuite/libffi.call/s55.c | 60 ++ libffi/testsuite/libffi.call/strlen.c | 17 +- libffi/testsuite/libffi.call/strlen2.c | 4 +- libffi/testsuite/libffi.call/strlen3.c | 4 +- libffi/testsuite/libffi.call/strlen4.c | 4 +- libffi/testsuite/libffi.call/struct10.c | 2 +- .../testsuite/libffi.call/struct_by_value_2.c | 63 ++ .../testsuite/libffi.call/struct_by_value_3.c | 65 ++ .../libffi.call/struct_by_value_3f.c | 65 ++ .../testsuite/libffi.call/struct_by_value_4.c | 67 ++ .../libffi.call/struct_by_value_4f.c | 67 ++ .../libffi.call/struct_by_value_big.c | 93 ++ .../libffi.call/struct_by_value_small.c | 61 ++ .../testsuite/libffi.call/struct_int_float.c | 88 ++ .../testsuite/libffi.call/struct_return_2H.c | 63 ++ .../testsuite/libffi.call/struct_return_8H.c | 90 ++ libffi/testsuite/libffi.call/va_2.c | 26 +- libffi/testsuite/libffi.call/va_3.c | 154 ++++ libffi/testsuite/libffi.call/va_struct1.c | 13 + libffi/testsuite/libffi.call/va_struct2.c | 11 + libffi/testsuite/libffi.call/va_struct3.c | 15 + libffi/testsuite/libffi.call/x32.c | 31 + .../testsuite/libffi.closures/closure_fn0.c | 5 +- .../testsuite/libffi.closures/closure_fn1.c | 2 + .../testsuite/libffi.closures/closure_fn2.c | 2 + .../testsuite/libffi.closures/closure_fn3.c | 22 +- .../testsuite/libffi.closures/closure_fn4.c | 2 + .../testsuite/libffi.closures/closure_fn5.c | 2 + .../testsuite/libffi.closures/closure_fn6.c | 2 + .../libffi.closures/closure_loc_fn0.c | 12 +- .../libffi.closures/closure_simple.c | 6 + libffi/testsuite/libffi.closures/cls_12byte.c | 18 + libffi/testsuite/libffi.closures/cls_16byte.c | 22 + libffi/testsuite/libffi.closures/cls_18byte.c | 24 + libffi/testsuite/libffi.closures/cls_19byte.c | 29 + .../testsuite/libffi.closures/cls_1_1byte.c | 4 + libffi/testsuite/libffi.closures/cls_20byte.c | 18 + .../testsuite/libffi.closures/cls_20byte1.c | 20 + libffi/testsuite/libffi.closures/cls_24byte.c | 32 + libffi/testsuite/libffi.closures/cls_2byte.c | 13 + .../testsuite/libffi.closures/cls_3_1byte.c | 19 + libffi/testsuite/libffi.closures/cls_3byte1.c | 13 + libffi/testsuite/libffi.closures/cls_3byte2.c | 13 + libffi/testsuite/libffi.closures/cls_3float.c | 18 + .../testsuite/libffi.closures/cls_4_1byte.c | 22 + libffi/testsuite/libffi.closures/cls_4byte.c | 13 + .../testsuite/libffi.closures/cls_5_1_byte.c | 28 + libffi/testsuite/libffi.closures/cls_5byte.c | 18 + libffi/testsuite/libffi.closures/cls_64byte.c | 24 + .../testsuite/libffi.closures/cls_6_1_byte.c | 27 + libffi/testsuite/libffi.closures/cls_6byte.c | 24 +- .../testsuite/libffi.closures/cls_7_1_byte.c | 38 + libffi/testsuite/libffi.closures/cls_7byte.c | 24 + libffi/testsuite/libffi.closures/cls_8byte.c | 14 + libffi/testsuite/libffi.closures/cls_9byte1.c | 13 + libffi/testsuite/libffi.closures/cls_9byte2.c | 14 +- .../libffi.closures/cls_align_double.c | 18 + .../libffi.closures/cls_align_float.c | 18 + .../libffi.closures/cls_align_longdouble.c | 19 + .../cls_align_longdouble_split.c | 63 +- .../cls_align_longdouble_split2.c | 41 +- .../libffi.closures/cls_align_pointer.c | 18 + .../libffi.closures/cls_align_sint16.c | 17 + .../libffi.closures/cls_align_sint32.c | 19 +- .../libffi.closures/cls_align_sint64.c | 17 + .../libffi.closures/cls_align_uint16.c | 17 + .../libffi.closures/cls_align_uint32.c | 18 + .../libffi.closures/cls_align_uint64.c | 18 + .../libffi.closures/cls_dbls_struct.c | 4 +- .../testsuite/libffi.closures/cls_double_va.c | 10 +- libffi/testsuite/libffi.closures/cls_float.c | 4 + .../libffi.closures/cls_longdouble.c | 12 +- .../libffi.closures/cls_longdouble_va.c | 25 +- .../libffi.closures/cls_multi_schar.c | 4 + .../libffi.closures/cls_multi_sshort.c | 5 + .../libffi.closures/cls_multi_sshortchar.c | 8 + .../libffi.closures/cls_multi_uchar.c | 8 + .../libffi.closures/cls_multi_ushort.c | 6 +- .../libffi.closures/cls_multi_ushortchar.c | 8 + .../testsuite/libffi.closures/cls_pointer.c | 5 + .../libffi.closures/cls_pointer_stack.c | 10 + libffi/testsuite/libffi.closures/cls_schar.c | 3 + libffi/testsuite/libffi.closures/cls_sint.c | 2 + libffi/testsuite/libffi.closures/cls_sshort.c | 3 + .../libffi.closures/cls_struct_va1.c | 11 + libffi/testsuite/libffi.closures/cls_uchar.c | 3 + libffi/testsuite/libffi.closures/cls_uint.c | 4 + .../testsuite/libffi.closures/cls_uint_va.c | 4 + .../testsuite/libffi.closures/cls_ulong_va.c | 4 + .../testsuite/libffi.closures/cls_ulonglong.c | 2 + libffi/testsuite/libffi.closures/cls_ushort.c | 3 + libffi/testsuite/libffi.closures/ffitest.h | 145 +--- .../testsuite/libffi.closures/huge_struct.c | 45 +- .../testsuite/libffi.closures/nested_struct.c | 39 +- .../libffi.closures/nested_struct10.c | 12 + .../libffi.closures/nested_struct11.c | 26 +- .../libffi.closures/nested_struct12.c | 2 +- .../libffi.closures/nested_struct13.c | 20 +- .../libffi.closures/nested_struct2.c | 9 + .../libffi.closures/nested_struct3.c | 9 + .../libffi.closures/nested_struct4.c | 9 + .../libffi.closures/nested_struct5.c | 9 + .../libffi.closures/nested_struct6.c | 11 + .../libffi.closures/nested_struct7.c | 9 + .../libffi.closures/nested_struct8.c | 11 + .../libffi.closures/nested_struct9.c | 11 + .../testsuite/libffi.closures/testclosure.c | 5 + .../testsuite/libffi.closures/unwindtest.cc | 5 +- .../libffi.closures/unwindtest_ffi_call.cc | 3 + libffi/testsuite/libffi.complex/complex_int.c | 2 +- libffi/testsuite/libffi.threads/ffitest.h | 1 + libffi/testsuite/libffi.threads/threads.exp | 50 ++ libffi/testsuite/libffi.threads/tsan.c | 74 ++ 208 files changed, 9009 insertions(+), 2233 deletions(-) create mode 100644 libffi/src/pa/ffi64.c create mode 100644 libffi/src/pa/hpux64.S create mode 100644 libffi/src/powerpc/internal.h create mode 100644 libffi/src/powerpc/t-aix create mode 100644 libffi/src/wasm/ffi.c create mode 100644 libffi/src/wasm/ffitarget.h create mode 100755 libffi/testsuite/emscripten/build-tests.sh create mode 100755 libffi/testsuite/emscripten/build.sh create mode 100644 libffi/testsuite/emscripten/conftest.py create mode 100755 libffi/testsuite/emscripten/node-tests.sh create mode 100644 libffi/testsuite/emscripten/test.html create mode 100644 libffi/testsuite/emscripten/test_libffi.py create mode 100644 libffi/testsuite/libffi.call/bpo_38748.c create mode 100644 libffi/testsuite/libffi.call/callback.c create mode 100644 libffi/testsuite/libffi.call/callback2.c create mode 100644 libffi/testsuite/libffi.call/callback3.c create mode 100644 libffi/testsuite/libffi.call/callback4.c create mode 100644 libffi/testsuite/libffi.call/longjmp.c create mode 100644 libffi/testsuite/libffi.call/overread.c create mode 100644 libffi/testsuite/libffi.call/pyobjc_tc.c create mode 100644 libffi/testsuite/libffi.call/s55.c create mode 100644 libffi/testsuite/libffi.call/struct_by_value_2.c create mode 100644 libffi/testsuite/libffi.call/struct_by_value_3.c create mode 100644 libffi/testsuite/libffi.call/struct_by_value_3f.c create mode 100644 libffi/testsuite/libffi.call/struct_by_value_4.c create mode 100644 libffi/testsuite/libffi.call/struct_by_value_4f.c create mode 100644 libffi/testsuite/libffi.call/struct_by_value_big.c create mode 100644 libffi/testsuite/libffi.call/struct_by_value_small.c create mode 100644 libffi/testsuite/libffi.call/struct_int_float.c create mode 100644 libffi/testsuite/libffi.call/struct_return_2H.c create mode 100644 libffi/testsuite/libffi.call/struct_return_8H.c create mode 100644 libffi/testsuite/libffi.call/va_3.c create mode 100644 libffi/testsuite/libffi.call/x32.c create mode 100644 libffi/testsuite/libffi.threads/ffitest.h create mode 100644 libffi/testsuite/libffi.threads/threads.exp create mode 100644 libffi/testsuite/libffi.threads/tsan.c -- 2.43.0
