From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg1-x531.google.com (mail-pg1-x531.google.com [IPv6:2607:f8b0:4864:20::531]) by sourceware.org (Postfix) with ESMTPS id 0670D3857C5D for ; Tue, 31 Aug 2021 18:24:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 0670D3857C5D Received: by mail-pg1-x531.google.com with SMTP id t1so79909pgv.3 for ; Tue, 31 Aug 2021 11:24:37 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Ylgj/PbZ/CHr+8Mu2OAUycC1XksK4ff71jTarfYZZ10=; b=JgtgU1dhiVDAAM53CedX0OxoTwmbihdz+UZbg+KL+qxQgEAlXlGDzB+fd4/GvmoG5D MCXsIs0WBfkNyFTxDyCY1FFZy3V5hceMpiyvrrcu9io5+2uX6VIhrcfcmLQVQL5X7IRX FwUXbNgPvMR1Maexd5N7RwcPOcqtq+Rb0WJaqh3s3pq1EhoEIffxH3BerT3zacZ3MRY9 0WiDD/yp7vvdK2qkeoYQiv1NK3Ms31e8VOLKnXU8zuqAH/ZPmrsO9bZujFY8SM8uPVf3 mPqTBfwYIMhnJhPlN14YYfLijvRgE79MxXOxadbUK4y64i0MunrZUkOsNJcsyloox6zk Ng7w== X-Gm-Message-State: AOAM5332vVRSw6soD4d96iaYX4l8JJLnwuMRNAE/u5VeDJVLMXG5a/u2 obzAwQOk2O0BEzPLk4S0BVyqkIwRFnxsa4FRVK0= X-Google-Smtp-Source: ABdhPJwfv6mTLBEfbcmSSiQWyJel/T+MDUZl17aFIx9nrbzovR1W6kmk5xM3gKHHEwpbeBgEZgqfPSvsCnDNViilqOY= X-Received: by 2002:a63:164a:: with SMTP id 10mr28470968pgw.161.1630434276781; Tue, 31 Aug 2021 11:24:36 -0700 (PDT) MIME-Version: 1.0 References: <20210831153659.3756892-1-hjl.tools@gmail.com> <20210831153659.3756892-3-hjl.tools@gmail.com> In-Reply-To: From: "H.J. Lu" Date: Tue, 31 Aug 2021 11:24:00 -0700 Message-ID: Subject: Re: [PATCH 2/4] libffi: Sync with libffi 3.4.2 To: Xi Ruoyao Cc: GCC Patches , Jakub Jelinek Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-3024.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=no autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Aug 2021 18:24:48 -0000 On Tue, Aug 31, 2021 at 9:32 AM Xi Ruoyao wrote: > > Hi hj, > > libffi-3.4.2's new static trampoline feature is known to break some > downstream packages with some specific use (or misuse?) of libffi, > unexpected by the libffi developers. For example > https://gitlab.gnome.org/GNOME/gjs/-/issues/428. It looks like a gjs bug. > I've not use gccgo recently, so I don't know if it might break something > here. Just a reminder, if the regtest on x86 and arm (32-bit and 64- > bit, they are the only platforms where libffi enables static trampoline) > is OK there should be no problem. There are no Go regressions on Linux/x86-64 with -m64 and -m32. > > On Tue, 2021-08-31 at 08:36 -0700, H.J. Lu via Gcc-patches wrote: > > Merged commit: f9ea41683444ebe11cfa45b05223899764df28fb > > --- > > libffi/.gitattributes | 4 + > > libffi/ChangeLog.libffi | 7743 +++++- > > libffi/LICENSE | 2 +- > > libffi/LICENSE-BUILDTOOLS | 353 + > > libffi/MERGE | 4 + > > libffi/Makefile.am | 249 +- > > libffi/Makefile.in | 1944 -- > > libffi/README | 450 - > > libffi/README.md | 495 + > > libffi/acinclude.m4 | 38 +- > > libffi/aclocal.m4 | 1202 - > > libffi/configure | 19411 ---------------- > > libffi/configure.ac | 199 +- > > libffi/configure.host | 97 +- > > libffi/doc/Makefile.am | 3 + > > libffi/doc/libffi.texi | 382 +- > > libffi/doc/version.texi | 8 +- > > libffi/fficonfig.h.in | 208 - > > libffi/generate-darwin-source-and-headers.py | 143 +- > > libffi/include/Makefile.am | 8 +- > > libffi/include/Makefile.in | 565 - > > libffi/include/ffi.h.in | 213 +- > > libffi/include/ffi_cfi.h | 21 + > > libffi/include/ffi_common.h | 50 +- > > libffi/include/tramp.h | 45 + > > libffi/libffi.map.in | 24 +- > > libffi/libffi.pc.in | 2 +- > > libffi/libffi.xcodeproj/project.pbxproj | 530 +- > > libffi/libtool-version | 25 +- > > libffi/man/Makefile.in | 515 - > > libffi/mdate-sh | 205 - > > libffi/msvcc.sh | 134 +- > > libffi/src/aarch64/ffi.c | 536 +- > > libffi/src/aarch64/ffitarget.h | 35 +- > > libffi/src/aarch64/internal.h | 33 + > > libffi/src/aarch64/sysv.S | 189 +- > > libffi/src/aarch64/win64_armasm.S | 506 + > > libffi/src/alpha/ffi.c | 6 +- > > libffi/src/arc/ffi.c | 6 +- > > libffi/src/arm/ffi.c | 380 +- > > libffi/src/arm/ffitarget.h | 24 +- > > libffi/src/arm/internal.h | 10 + > > libffi/src/arm/sysv.S | 304 +- > > libffi/src/arm/sysv_msvc_arm32.S | 311 + > > libffi/src/closures.c | 489 +- > > libffi/src/cris/ffi.c | 4 +- > > libffi/src/csky/ffi.c | 395 + > > libffi/src/csky/ffitarget.h | 63 + > > libffi/src/csky/sysv.S | 371 + > > libffi/src/dlmalloc.c | 7 +- > > libffi/src/frv/ffi.c | 4 +- > > libffi/src/ia64/ffi.c | 30 +- > > libffi/src/ia64/ffitarget.h | 3 +- > > libffi/src/ia64/unix.S | 9 +- > > libffi/src/java_raw_api.c | 6 +- > > libffi/src/kvx/asm.h | 5 + > > libffi/src/kvx/ffi.c | 273 + > > libffi/src/kvx/ffitarget.h | 75 + > > libffi/src/kvx/sysv.S | 127 + > > libffi/src/m32r/ffi.c | 2 +- > > libffi/src/m68k/ffi.c | 4 +- > > libffi/src/m68k/sysv.S | 29 +- > > libffi/src/m88k/ffi.c | 8 +- > > libffi/src/metag/ffi.c | 14 +- > > libffi/src/microblaze/ffi.c | 10 +- > > libffi/src/mips/ffi.c | 146 +- > > libffi/src/mips/ffitarget.h | 23 +- > > libffi/src/mips/n32.S | 151 +- > > libffi/src/mips/o32.S | 177 +- > > libffi/src/moxie/eabi.S | 2 +- > > libffi/src/moxie/ffi.c | 27 +- > > libffi/src/nios2/ffi.c | 4 +- > > libffi/src/pa/ffi.c | 216 +- > > libffi/src/pa/ffitarget.h | 11 +- > > libffi/src/pa/hpux32.S | 76 +- > > libffi/src/pa/linux.S | 160 +- > > libffi/src/powerpc/asm.h | 4 +- > > libffi/src/powerpc/darwin_closure.S | 6 +- > > libffi/src/powerpc/ffi.c | 10 +- > > libffi/src/powerpc/ffi_darwin.c | 48 +- > > libffi/src/powerpc/ffi_linux64.c | 247 +- > > libffi/src/powerpc/ffi_powerpc.h | 25 +- > > libffi/src/powerpc/ffitarget.h | 14 +- > > libffi/src/powerpc/linux64.S | 111 +- > > libffi/src/powerpc/linux64_closure.S | 70 +- > > libffi/src/powerpc/sysv.S | 12 +- > > libffi/src/prep_cif.c | 64 +- > > libffi/src/raw_api.c | 10 +- > > libffi/src/riscv/ffi.c | 16 +- > > libffi/src/sparc/ffi.c | 6 +- > > libffi/src/sparc/ffi64.c | 18 +- > > libffi/src/tramp.c | 729 + > > libffi/src/types.c | 4 +- > > libffi/src/vax/ffi.c | 4 +- > > libffi/src/x86/asmnames.h | 30 + > > libffi/src/x86/darwin.S | 444 - > > libffi/src/x86/darwin64.S | 416 - > > libffi/src/x86/darwin64_c.c | 643 - > > libffi/src/x86/darwin_c.c | 843 - > > libffi/src/x86/ffi.c | 162 +- > > libffi/src/x86/ffi64.c | 164 +- > > libffi/src/x86/ffitarget.h | 42 +- > > libffi/src/x86/ffiw64.c | 114 +- > > libffi/src/x86/internal.h | 14 + > > libffi/src/x86/internal64.h | 14 + > > libffi/src/x86/sysv.S | 215 +- > > libffi/src/x86/sysv_intel.S | 995 + > > libffi/src/x86/unix64.S | 204 +- > > libffi/src/x86/win64.S | 170 +- > > libffi/src/x86/win64_intel.S | 238 + > > libffi/src/xtensa/ffi.c | 4 +- > > libffi/src/xtensa/sysv.S | 7 +- > > libffi/testsuite/Makefile.am | 206 +- > > libffi/testsuite/Makefile.in | 572 - > > libffi/testsuite/lib/libffi.exp | 314 +- > > libffi/testsuite/libffi.bhaible/Makefile | 28 + > > libffi/testsuite/libffi.bhaible/README | 78 + > > libffi/testsuite/libffi.bhaible/alignof.h | 50 + > > libffi/testsuite/libffi.bhaible/bhaible.exp | 63 + > > libffi/testsuite/libffi.bhaible/test-call.c | 1745 ++ > > .../testsuite/libffi.bhaible/test-callback.c | 2885 +++ > > libffi/testsuite/libffi.bhaible/testcases.c | 747 + > > libffi/testsuite/libffi.call/align_mixed.c | 46 + > > libffi/testsuite/libffi.call/align_stdcall.c | 46 + > > libffi/testsuite/libffi.call/call.exp | 28 +- > > libffi/testsuite/libffi.call/cls_uchar_va.c | 44 - > > libffi/testsuite/libffi.call/cls_ushort_va.c | 44 - > > libffi/testsuite/libffi.call/ffitest.h | 13 +- > > libffi/testsuite/libffi.call/float2.c | 23 +- > > libffi/testsuite/libffi.call/offsets.c | 46 + > > libffi/testsuite/libffi.call/struct10.c | 57 + > > libffi/testsuite/libffi.call/va_1.c | 120 +- > > libffi/testsuite/libffi.call/va_2.c | 196 + > > libffi/testsuite/libffi.closures/closure.exp | 67 + > > .../closure_fn0.c | 0 > > .../closure_fn1.c | 0 > > .../closure_fn2.c | 0 > > .../closure_fn3.c | 0 > > .../closure_fn4.c | 0 > > .../closure_fn5.c | 0 > > .../closure_fn6.c | 0 > > .../closure_loc_fn0.c | 3 + > > .../closure_simple.c | 0 > > .../cls_12byte.c | 0 > > .../cls_16byte.c | 0 > > .../cls_18byte.c | 0 > > .../cls_19byte.c | 0 > > .../cls_1_1byte.c | 0 > > .../cls_20byte.c | 2 +- > > .../cls_20byte1.c | 2 +- > > .../cls_24byte.c | 6 +- > > .../cls_2byte.c | 0 > > .../cls_3_1byte.c | 0 > > .../cls_3byte1.c | 0 > > .../cls_3byte2.c | 0 > > libffi/testsuite/libffi.closures/cls_3float.c | 95 + > > .../cls_4_1byte.c | 0 > > .../cls_4byte.c | 0 > > .../cls_5_1_byte.c | 2 +- > > .../cls_5byte.c | 2 +- > > .../cls_64byte.c | 0 > > .../cls_6_1_byte.c | 2 +- > > .../cls_6byte.c | 2 +- > > .../cls_7_1_byte.c | 2 +- > > .../cls_7byte.c | 2 +- > > .../cls_8byte.c | 0 > > .../cls_9byte1.c | 2 +- > > .../cls_9byte2.c | 2 +- > > .../cls_align_double.c | 2 +- > > .../cls_align_float.c | 2 +- > > .../cls_align_longdouble.c | 2 +- > > .../cls_align_longdouble_split.c | 2 +- > > .../cls_align_longdouble_split2.c | 2 +- > > .../cls_align_pointer.c | 2 +- > > .../cls_align_sint16.c | 2 +- > > .../cls_align_sint32.c | 2 +- > > .../cls_align_sint64.c | 2 +- > > .../cls_align_uint16.c | 2 +- > > .../cls_align_uint32.c | 2 +- > > .../cls_align_uint64.c | 2 +- > > .../cls_dbls_struct.c | 6 +- > > .../cls_double.c | 0 > > .../cls_double_va.c | 0 > > .../cls_float.c | 0 > > .../cls_longdouble.c | 0 > > .../cls_longdouble_va.c | 0 > > .../cls_many_mixed_args.c | 0 > > .../cls_many_mixed_float_double.c | 0 > > .../cls_multi_schar.c | 2 +- > > .../cls_multi_sshort.c | 2 +- > > .../cls_multi_sshortchar.c | 2 +- > > .../cls_multi_uchar.c | 2 +- > > .../cls_multi_ushort.c | 2 +- > > .../cls_multi_ushortchar.c | 2 +- > > .../cls_pointer.c | 0 > > .../cls_pointer_stack.c | 0 > > .../cls_schar.c | 0 > > .../cls_sint.c | 0 > > .../cls_sshort.c | 0 > > .../cls_struct_va1.c | 0 > > .../cls_uchar.c | 0 > > .../cls_uint.c | 0 > > .../cls_uint_va.c | 0 > > .../cls_ulong_va.c | 0 > > .../cls_ulonglong.c | 0 > > .../cls_ushort.c | 0 > > .../err_bad_abi.c | 0 > > libffi/testsuite/libffi.closures/ffitest.h | 144 + > > .../huge_struct.c | 4 +- > > .../nested_struct.c | 2 +- > > .../nested_struct1.c | 2 +- > > .../nested_struct10.c | 1 + > > .../nested_struct11.c | 0 > > .../libffi.closures/nested_struct12.c | 86 + > > .../nested_struct13.c} | 14 +- > > .../nested_struct2.c | 2 +- > > .../nested_struct3.c | 2 +- > > .../nested_struct4.c | 0 > > .../nested_struct5.c | 0 > > .../nested_struct6.c | 0 > > .../nested_struct7.c | 0 > > .../nested_struct8.c | 0 > > .../nested_struct9.c | 0 > > .../problem1.c | 0 > > .../libffi.closures/single_entry_structs1.c | 86 + > > .../libffi.closures/single_entry_structs2.c | 102 + > > .../libffi.closures/single_entry_structs3.c | 101 + > > .../stret_large.c | 0 > > .../stret_large2.c | 0 > > .../stret_medium.c | 2 +- > > .../stret_medium2.c | 2 +- > > .../testclosure.c | 2 +- > > .../unwindtest.cc | 13 +- > > .../unwindtest_ffi_call.cc | 5 +- > > libffi/testsuite/libffi.go/static-chain.h | 6 - > > libffi/testsuite/libffi.special/ffitestcxx.h | 96 - > > libffi/testsuite/libffi.special/special.exp | 35 - > > 237 files changed, 24334 insertions(+), 30607 deletions(-) > > create mode 100644 libffi/.gitattributes > > create mode 100644 libffi/LICENSE-BUILDTOOLS > > create mode 100644 libffi/MERGE > > delete mode 100644 libffi/Makefile.in > > delete mode 100644 libffi/README > > create mode 100644 libffi/README.md > > delete mode 100644 libffi/aclocal.m4 > > delete mode 100755 libffi/configure > > create mode 100644 libffi/doc/Makefile.am > > delete mode 100644 libffi/fficonfig.h.in > > mode change 100644 => 100755 libffi/generate-darwin-source-and- > > headers.py > > delete mode 100644 libffi/include/Makefile.in > > create mode 100644 libffi/include/tramp.h > > delete mode 100644 libffi/man/Makefile.in > > delete mode 100644 libffi/mdate-sh > > create mode 100644 libffi/src/aarch64/win64_armasm.S > > create mode 100644 libffi/src/arm/sysv_msvc_arm32.S > > create mode 100644 libffi/src/csky/ffi.c > > create mode 100644 libffi/src/csky/ffitarget.h > > create mode 100644 libffi/src/csky/sysv.S > > create mode 100644 libffi/src/kvx/asm.h > > create mode 100644 libffi/src/kvx/ffi.c > > create mode 100644 libffi/src/kvx/ffitarget.h > > create mode 100644 libffi/src/kvx/sysv.S > > create mode 100644 libffi/src/tramp.c > > create mode 100644 libffi/src/x86/asmnames.h > > delete mode 100644 libffi/src/x86/darwin.S > > delete mode 100644 libffi/src/x86/darwin64.S > > delete mode 100644 libffi/src/x86/darwin64_c.c > > delete mode 100644 libffi/src/x86/darwin_c.c > > create mode 100644 libffi/src/x86/sysv_intel.S > > create mode 100644 libffi/src/x86/win64_intel.S > > delete mode 100644 libffi/testsuite/Makefile.in > > create mode 100644 libffi/testsuite/libffi.bhaible/Makefile > > create mode 100644 libffi/testsuite/libffi.bhaible/README > > create mode 100644 libffi/testsuite/libffi.bhaible/alignof.h > > create mode 100644 libffi/testsuite/libffi.bhaible/bhaible.exp > > create mode 100644 libffi/testsuite/libffi.bhaible/test-call.c > > create mode 100644 libffi/testsuite/libffi.bhaible/test-callback.c > > create mode 100644 libffi/testsuite/libffi.bhaible/testcases.c > > create mode 100644 libffi/testsuite/libffi.call/align_mixed.c > > create mode 100644 libffi/testsuite/libffi.call/align_stdcall.c > > delete mode 100644 libffi/testsuite/libffi.call/cls_uchar_va.c > > delete mode 100644 libffi/testsuite/libffi.call/cls_ushort_va.c > > create mode 100644 libffi/testsuite/libffi.call/offsets.c > > create mode 100644 libffi/testsuite/libffi.call/struct10.c > > create mode 100644 libffi/testsuite/libffi.call/va_2.c > > create mode 100644 libffi/testsuite/libffi.closures/closure.exp > > rename libffi/testsuite/{libffi.call => libffi.closures}/closure_fn0.c > > (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/closure_fn1.c > > (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/closure_fn2.c > > (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/closure_fn3.c > > (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/closure_fn4.c > > (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/closure_fn5.c > > (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/closure_fn6.c > > (100%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/closure_loc_fn0.c (96%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/closure_simple.c (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_12byte.c > > (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_16byte.c > > (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_18byte.c > > (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_19byte.c > > (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_1_1byte.c > > (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_20byte.c > > (97%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_20byte1.c > > (97%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_24byte.c > > (95%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_2byte.c > > (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_3_1byte.c > > (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_3byte1.c > > (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_3byte2.c > > (100%) > > create mode 100644 libffi/testsuite/libffi.closures/cls_3float.c > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_4_1byte.c > > (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_4byte.c > > (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_5_1_byte.c > > (97%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_5byte.c > > (97%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_64byte.c > > (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_6_1_byte.c > > (97%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_6byte.c > > (97%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_7_1_byte.c > > (97%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_7byte.c > > (97%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_8byte.c > > (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_9byte1.c > > (97%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_9byte2.c > > (97%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_align_double.c (97%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_align_float.c (97%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_align_longdouble.c (97%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_align_longdouble_split.c (98%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_align_longdouble_split2.c (98%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_align_pointer.c (97%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_align_sint16.c (97%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_align_sint32.c (97%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_align_sint64.c (97%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_align_uint16.c (97%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_align_uint32.c (97%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_align_uint64.c (97%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_dbls_struct.c (92%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_double.c > > (100%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_double_va.c (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_float.c > > (100%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_longdouble.c (100%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_longdouble_va.c (100%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_many_mixed_args.c (100%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_many_mixed_float_double.c (100%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_multi_schar.c (96%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_multi_sshort.c (96%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_multi_sshortchar.c (96%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_multi_uchar.c (96%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_multi_ushort.c (95%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_multi_ushortchar.c (96%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_pointer.c > > (100%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_pointer_stack.c (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_schar.c > > (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_sint.c > > (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_sshort.c > > (100%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_struct_va1.c (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_uchar.c > > (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_uint.c > > (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_uint_va.c > > (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_ulong_va.c > > (100%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/cls_ulonglong.c (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/cls_ushort.c > > (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/err_bad_abi.c > > (100%) > > create mode 100644 libffi/testsuite/libffi.closures/ffitest.h > > rename libffi/testsuite/{libffi.call => libffi.closures}/huge_struct.c > > (99%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/nested_struct.c (98%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/nested_struct1.c (98%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/nested_struct10.c (99%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/nested_struct11.c (100%) > > create mode 100644 libffi/testsuite/libffi.closures/nested_struct12.c > > rename libffi/testsuite/{libffi.call/nested_struct12.c => > > libffi.closures/nested_struct13.c} (88%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/nested_struct2.c (98%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/nested_struct3.c (98%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/nested_struct4.c (100%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/nested_struct5.c (100%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/nested_struct6.c (100%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/nested_struct7.c (100%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/nested_struct8.c (100%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/nested_struct9.c (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/problem1.c > > (100%) > > create mode 100644 > > libffi/testsuite/libffi.closures/single_entry_structs1.c > > create mode 100644 > > libffi/testsuite/libffi.closures/single_entry_structs2.c > > create mode 100644 > > libffi/testsuite/libffi.closures/single_entry_structs3.c > > rename libffi/testsuite/{libffi.call => libffi.closures}/stret_large.c > > (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/stret_large2.c > > (100%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/stret_medium.c > > (98%) > > rename libffi/testsuite/{libffi.call => > > libffi.closures}/stret_medium2.c (98%) > > rename libffi/testsuite/{libffi.call => libffi.closures}/testclosure.c > > (95%) > > rename libffi/testsuite/{libffi.special => > > libffi.closures}/unwindtest.cc (95%) > > rename libffi/testsuite/{libffi.special => > > libffi.closures}/unwindtest_ffi_call.cc (94%) > > delete mode 100644 libffi/testsuite/libffi.special/ffitestcxx.h > > delete mode 100644 libffi/testsuite/libffi.special/special.exp > > > > https://gitlab.com/x86-gcc/gcc/-/commit/667397efc8307e45ca6ddec737b0caf8ca9d0fda > > -- > Xi Ruoyao > School of Aerospace Science and Technology, Xidian University > -- H.J.