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

Reply via email to