Patch 1 updates the list of local libffi patches, except for those
that only touch generated files.
Patch 2 updates the sync script to remove a few more useless files.
Patch 3 imports the latest libffi release from the upstream git
repo. The actual contents have been omitted because of its size and
because it's easy to replicate it by running the merge script.
Patch 4 re-does the changes to adapt libffi to GCC's build system.
Patch 5 re-does the changes to adapt libffi to GCC's test system.
Patch 6 is the only local patch left that has not been merged upstream
or that is not build/test system related. I have forwarded that patch
upstream.
Patch 7 removes a warning that make dejagnu mark 32-bit tests on
x86_64 as failed though they pass. I have forwarded that patch
upstream.
libffi/LOCAL_PATCHES will need to be updated once this is merged.
Bootstraped and regtested on x86_64-linux with multilib enabled and
`-m32',`-m64'.
These are the test results for libffi in the GCC build:
Trunk:
=== libffi Summary for unix/-m32 ===
# of expected passes 3764
=== libffi Summary for unix/-m64 ===
# of expected passes 2304
=== libffi Summary ===
# of expected passes 6068
This series:
=== libffi Summary for unix/-m32 ===
# of expected passes 4068
=== libffi Summary for unix/-m64 ===
# of expected passes 2464
=== libffi Summary ===
# of expected passes 6532
Pietro Monteiro (7):
libffi: Add missing GCC patches to LOCAL_PATCHES
libffi: Remove more unneeded files when merging
libffi: Sync with libffi 3.5.2
libffi: Integrate build with GCC
libffi: Integrate testsuite with GCC testsuite
libffi: Always define `WIN32_LEAN_AND_MEAN` before <windows.h>
libffi: Remove debugging output
libffi/LICENSE | 2 +-
libffi/LOCAL_PATCHES | 13 +
libffi/MERGE | 2 +-
libffi/Makefile.am | 34 +-
libffi/Makefile.in | 78 +-
libffi/README.md | 164 ++-
libffi/acinclude.m4 | 128 +-
libffi/configure | 1253 +++++------------
libffi/configure.ac | 91 +-
libffi/configure.host | 28 +-
libffi/doc/libffi.texi | 68 +-
libffi/doc/version.texi | 8 +-
libffi/fficonfig.h.in | 55 +-
libffi/generate-darwin-source-and-headers.py | 155 +-
libffi/include/Makefile.in | 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/man/Makefile.in | 6 +-
libffi/merge.sh | 8 +-
libffi/src/aarch64/ffi.c | 173 ++-
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 | 5 +-
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/Makefile.in | 205 ++-
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 | 532 +++----
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 +
215 files changed, 9394 insertions(+), 3140 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