Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libffi for openSUSE:Factory checked 
in at 2022-10-26 12:31:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libffi (Old)
 and      /work/SRC/openSUSE:Factory/.libffi.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libffi"

Wed Oct 26 12:31:14 2022 rev:14 rq:1031049 version:3.4.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/libffi/libffi.changes    2022-10-18 
12:44:08.393606258 +0200
+++ /work/SRC/openSUSE:Factory/.libffi.new.2275/libffi.changes  2022-10-26 
12:31:15.288243563 +0200
@@ -1,0 +2,12 @@
+Mon Oct 24 13:07:19 UTC 2022 - Andreas Schwab <sch...@suse.de>
+
+- Update to libffi 3.4.4
+  * Important aarch64 fixes, including support for linux builds
+      with Link Time Optimization (-flto).
+  * Fix x86 stdcall stack alignment.
+  * Fix x86 Windows msvc assembler compatibility.
+  * Fix moxie and or1k small structure args.
+- drop riscv64-handle-big-structures.patch
+- reenable LTO
+
+-------------------------------------------------------------------

Old:
----
  libffi-3.4.3.tar.gz
  riscv64-handle-big-structures.patch

New:
----
  libffi-3.4.4.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libffi.spec ++++++
--- /var/tmp/diff_new_pack.5cIKOs/_old  2022-10-26 12:31:15.780244615 +0200
+++ /var/tmp/diff_new_pack.5cIKOs/_new  2022-10-26 12:31:15.784244624 +0200
@@ -18,7 +18,7 @@
 
 %define libffi_sover 8
 Name:           libffi
-Version:        3.4.3
+Version:        3.4.4
 Release:        0
 Summary:        Foreign Function Interface Library
 License:        MIT
@@ -26,7 +26,6 @@
 URL:            https://sourceware.org/libffi/
 Source:         
https://github.com/libffi/libffi/releases/download/v%{version}/libffi-%{version}.tar.gz
 Source99:       baselibs.conf
-Patch1:         riscv64-handle-big-structures.patch
 # for make check
 BuildRequires:  dejagnu
 BuildRequires:  expect
@@ -68,8 +67,6 @@
 %autosetup -p1
 
 %build
-# https://github.com/libffi/libffi/issues/733
-%define _lto_cflags %{nil}
 # https://github.com/libffi/libffi/pull/647
 %configure --disable-exec-static-tramp
 %make_build

++++++ libffi-3.4.3.tar.gz -> libffi-3.4.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libffi-3.4.3/ChangeLog new/libffi-3.4.4/ChangeLog
--- old/libffi-3.4.3/ChangeLog  2022-09-19 19:54:36.000000000 +0200
+++ new/libffi-3.4.4/ChangeLog  2022-10-24 02:29:53.000000000 +0200
@@ -1,3 +1,241 @@
+commit f24180be1367f942824365b131ae894b9c769c7d
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Sun Oct 23 20:17:29 2022 -0400
+
+    Update to version 3.4.4
+
+commit 848052fabb207d6f56485c8c2c3509eddecbe828
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Sun Oct 23 11:25:10 2022 -0400
+
+    More aarch64 fixes
+
+commit af0f14cd6d932bd1c2f7c39c01e2df3b0ad19ea9
+Author: Icecream95 <the.real.icecrea...@gmail.com>
+Date:   Mon Oct 24 04:08:10 2022 +1300
+
+    Fix types of temporary variables in aarch64 extend_integer_type (#745)
+    
+    Fixes truncated values in weston-info output.
+
+commit f7233db2a781b43e419a30edbec7639f74fa2a00
+Author: musvaage <112724366+musva...@users.noreply.github.com>
+Date:   Mon Oct 17 17:26:17 2022 -0500
+
+    typos (#742)
+
+commit 45e492952e9f984a105ab281fb9433a4bbc12146
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Sun Oct 16 12:41:56 2022 -0400
+
+    Add 32-bit cygwin test
+
+commit 93cfb655200f34ab1b2b7d8955291c457b91ee9f
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Mon Oct 10 14:32:35 2022 -0400
+
+    Correction for older compilers
+
+commit 77a0fb82b53087647a12334c6ddd590ea6215199
+Author: Andreas Schwab <sch...@linux-m68k.org>
+Date:   Mon Oct 10 17:59:04 2022 +0200
+
+    Flush output before aborting (#740)
+    
+    Co-authored-by: Andreas Schwab <sch...@suse.de>
+
+commit 3874fd9865eef72a5cf5a761781b51f8db9fa267
+Author: Andreas Schwab <sch...@linux-m68k.org>
+Date:   Mon Oct 10 17:58:48 2022 +0200
+
+    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 <sch...@suse.de>
+
+commit 4b0c358e28fae22164bf0d423f183dfed8a1ba10
+Author: Andreas Schwab <sch...@linux-m68k.org>
+Date:   Mon Oct 10 17:57:47 2022 +0200
+
+    riscv: make copies of structs passed by reference (#738)
+    
+    Co-authored-by: Andreas Schwab <sch...@suse.de>
+
+commit c163d93ac032a101cda1818855d681430f7af89a
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Sat Oct 8 18:35:38 2022 -0400
+
+    Add gcc-12 testing for aarch64 linux
+
+commit 62fd1f218be35976858a9f3a0b36fe0d38146bc9
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Sun Oct 2 13:03:37 2022 -0400
+
+    Tweak quotes
+
+commit e1d1b094d31dbf97bd53c09736be97e1e9812d6a
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Wed Sep 28 10:16:45 2022 -0400
+
+    Add .
+
+commit b45f68949d7d1b705eb5e26f58a09972ad70a9c4
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Wed Sep 28 10:16:01 2022 -0400
+
+    Update README for 3.4.4.
+
+commit 817a43fbc1d6d1c702c492e926f158b17ae988e4
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Wed Sep 28 09:05:45 2022 -0400
+
+    Revert to previous cfi check. (#735)
+
+commit 963c4a969326192a2a0ad536d3943f21dbbb0eaa
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Tue Sep 27 22:05:42 2022 -0400
+
+    Remove nested comments
+
+commit e9e44157526c00bfd1142175ed6a7eb936ea0ede
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Tue Sep 27 21:25:30 2022 -0400
+
+    Don't tweak path
+
+commit 4594dcc98770b4fa60fce313abf557f090f8a0fd
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Tue Sep 27 21:05:26 2022 -0400
+
+    Fix find
+
+commit fe68a7b998329f471c3c0c5726073b9cb1a5a126
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Tue Sep 27 20:29:17 2022 -0400
+
+    Locate tools
+
+commit cfb3f4c255cda534d1dc5de6a31cff70f02f9d69
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Tue Sep 27 20:13:42 2022 -0400
+
+    Use cross tools for Windows
+
+commit ae544e0043079d778fdf0e16408db3b7a6d723bd
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Tue Sep 27 18:23:06 2022 -0400
+
+    Fix shell
+
+commit b8d849bd85294253787bbe1838de354ad2f54201
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Tue Sep 27 17:58:31 2022 -0400
+
+    Find ms tools
+
+commit 9785eee066782d7575023f94b64402963b55aa8c
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Tue Sep 27 17:39:44 2022 -0400
+
+    32- and 64-bit Windows
+
+commit 1421717effc7b5052e3c26e2b715a83a8a61355c
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Tue Sep 27 08:13:17 2022 -0400
+
+    Add "lto" to triple to identify lto builds
+
+commit 425acd4c2f217b00868ec1577c20b73de032c114
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Tue Sep 27 07:57:37 2022 -0400
+
+    Try aarch64 linux with -flto
+
+commit c4261a0588fa997837e44f8417fc8577b37cd461
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Mon Sep 26 16:45:00 2022 -0400
+
+    Show compiler version
+
+commit a1467200c36ce80dacb8d9d0d50049765809b6f4
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Mon Sep 26 11:41:48 2022 -0400
+
+    Never link pthread for android
+
+commit 5ce26a0e03eacb483709189e8cbb05509fa68612
+Author: Frederik Seiffert <frede...@seiffert.org>
+Date:   Mon Sep 26 13:43:40 2022 +0200
+
+    CI: add Android builds (#732)
+
+commit 55bcc47717bb0f9c5276a45710d757cda7a61f8e
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Sat Sep 24 22:03:52 2022 -0400
+
+    Test idea borrowed from cpython
+
+commit a2473cde0a02c096dc3e0b57f0cb73f598765570
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Sat Sep 24 21:41:02 2022 -0400
+
+    or1k: All struct args are passed in memory
+
+commit f93224d38662a8cdc33ca56fe6f2d5650a86d690
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Sat Sep 24 21:38:57 2022 -0400
+
+    moxie: All struct args are passed in memory
+
+commit e79f19489bb294ce60bef5cdba5e56c3e7d84382
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Sat Sep 24 17:11:30 2022 -0400
+
+    Add test case transcribed from cpython
+
+commit ab96038772ec4f4ccfaf49d621cd20f58742c401
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Mon Sep 19 19:42:35 2022 -0400
+
+    Set host triplet for native builds
+
+commit a6fc81653d6ce649a6bc29675baa112c68a21df0
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Mon Sep 19 19:25:09 2022 -0400
+
+    Update job names
+
+commit 6b7fb6ce9eb4751ed3179de256566971c9d46cb7
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Mon Sep 19 18:23:42 2022 -0400
+
+    Give better names to CI workflows
+
+commit f0675ab7e85ca31095b51db5a5c955f1005240cb
+Author: Anthony Green <gr...@moxielogic.com>
+Date:   Mon Sep 19 17:30:51 2022 -0400
+
+    Update version to 3.4.4-experimental
+
+commit e3eaa609882fbcffb6c1b21270b6ff46fb57699f
+Author: Hans <h-c-muel...@users.noreply.github.com>
+Date:   Mon Sep 19 23:26:59 2022 +0200
+
+    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 <>
+
 commit 84817695eab13c282436fca278bde2384ca955e5
 Author: Anthony Green <gr...@moxielogic.com>
 Date:   Mon Sep 19 13:31:46 2022 -0400
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libffi-3.4.3/Makefile.in new/libffi-3.4.4/Makefile.in
--- old/libffi-3.4.3/Makefile.in        2022-09-19 18:22:24.000000000 +0200
+++ new/libffi-3.4.4/Makefile.in        2022-10-24 02:09:53.000000000 +0200
@@ -98,7 +98,8 @@
 @FFI_DEBUG_TRUE@am__append_3 = -DFFI_DEBUG
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_maxopt.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/asmcfi.m4 \
+       $(top_srcdir)/m4/ax_cc_maxopt.m4 \
        $(top_srcdir)/m4/ax_cflags_warn_all.m4 \
        $(top_srcdir)/m4/ax_check_compile_flag.m4 \
        $(top_srcdir)/m4/ax_compiler_vendor.m4 \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libffi-3.4.3/README.md new/libffi-3.4.4/README.md
--- old/libffi-3.4.3/README.md  2022-09-19 19:54:36.000000000 +0200
+++ new/libffi-3.4.4/README.md  2022-10-24 02:29:53.000000000 +0200
@@ -1,5 +1,5 @@
 
-libffi-3.4.3 was released on September 19, 2022.  Check the libffi web
+libffi-3.4.4 was released on October 23, 2022.  Check the libffi web
 page for updates: <URL:http://sourceware.org/libffi/>.
 
 
@@ -195,7 +195,14 @@
 
 See the git log for details at http://github.com/libffi/libffi.
 
-    3.4.3 Sep-19-22
+    3.4.4 Oct-23-2022
+        Important aarch64 fixes, including support for linux builds
+          with Link Time Optimization (-flto).
+        Fix x86 stdcall stack alignment.
+        Fix x86 Windows msvc assembler compatibility.
+        Fix moxie and or1k small structure args.
+
+    3.4.3 Sep-19-2022
         All struct args are passed by value, regardless of size, as per ABIs.
         Enable static trampolines for Cygwin.
         Add support for Loongson's LoongArch64 architecture.
@@ -203,7 +210,7 @@
         Fix 32-bit x86 stdcall stack corruption.
         Fix ILP32 aarch64 support.
 
-    3.4.2 Jun-28-21
+    3.4.2 Jun-28-2021
         Add static trampoline support for Linux on x86_64 and ARM64.
         Add support for Alibaba's CSKY architecture.
         Add support for Kalray's KVX architecture.
@@ -216,7 +223,7 @@
         Reject float and small integer argument in ffi_prep_cif_var().
           Callers must promote these types themselves.
 
-    3.3 Nov-23-19
+    3.3 Nov-23-2019
         Add RISC-V support.
         New API in support of GO closures.
         Add IEEE754 binary128 long double support for 64-bit Power
@@ -228,10 +235,10 @@
         Add pre-built PDF documentation to source distribution.
         Many new test cases and bug fixes.
 
-    3.2.1 Nov-12-14
+    3.2.1 Nov-12-2014
         Build fix for non-iOS AArch64 targets.
 
-    3.2 Nov-11-14
+    3.2 Nov-11-2014
         Add C99 Complex Type support (currently only supported on
           s390).
         Add support for PASCAL and REGISTER calling conventions on x86
@@ -239,7 +246,7 @@
         Add OpenRISC and Cygwin-64 support.
         Bug fixes.
 
-    3.1 May-19-14
+    3.1 May-19-2014
         Add AArch64 (ARM64) iOS support.
         Add Nios II support.
         Add m88k and DEC VAX support.
@@ -252,7 +259,7 @@
         Archive off the manually maintained ChangeLog in favor of git
           log.
 
-    3.0.13 Mar-17-13
+    3.0.13 Mar-17-2013
         Add Meta support.
         Add missing Moxie bits.
         Fix stack alignment bug on 32-bit x86.
@@ -262,7 +269,7 @@
           with GCC (OS X, Solaris).
         Fix Cygwin regression.
 
-    3.0.12 Feb-11-13
+    3.0.12 Feb-11-2013
         Add Moxie support.
         Add AArch64 support.
         Add Blackfin support.
@@ -274,7 +281,7 @@
           Solaris and AIX.
         Work around LLVM/GCC interoperability issue on x86_64.
 
-    3.0.11 Apr-11-12
+    3.0.11 Apr-11-2012
         Lots of build fixes.
         Add support for variadic functions (ffi_prep_cif_var).
         Add Linux/x32 support.
@@ -285,7 +292,7 @@
         Fix Octeon and MC68881 support.
         Fix code pessimizations.
 
-    3.0.10 Aug-23-11
+    3.0.10 Aug-23-2011
         Add support for Apple's iOS.
         Add support for ARM VFP ABI.
         Add RTEMS support for MIPS and M68K.
@@ -299,71 +306,71 @@
         Testsuite fixes for Tru64 Unix.
         Additional platform support.
 
-    3.0.9 Dec-31-09
+    3.0.9 Dec-31-2009
         Add AVR32 and win64 ports.  Add ARM softfp support.
         Many fixes for AIX, Solaris, HP-UX, *BSD.
         Several PowerPC and x86-64 bug fixes.
         Build DLL for windows.
 
-    3.0.8 Dec-19-08
+    3.0.8 Dec-19-2008
         Add *BSD, BeOS, and PA-Linux support.
 
-    3.0.7 Nov-11-08
+    3.0.7 Nov-11-2008
         Fix for ppc FreeBSD.
         (thanks to Andreas Tobler)
 
-    3.0.6 Jul-17-08
+    3.0.6 Jul-17-2008
         Fix for closures on sh.
         Mark the sh/sh64 stack as non-executable.
         (both thanks to Kaz Kojima)
 
-    3.0.5 Apr-3-08
+    3.0.5 Apr-3-2008
         Fix libffi.pc file.
         Fix #define ARM for IcedTea users.
         Fix x86 closure bug.
 
-    3.0.4 Feb-24-08
+    3.0.4 Feb-24-2008
         Fix x86 OpenBSD configury.
 
-    3.0.3 Feb-22-08
+    3.0.3 Feb-22-2008
         Enable x86 OpenBSD thanks to Thomas Heller, and
           x86-64 FreeBSD thanks to Bj??rn K??nig and Andreas Tobler.
         Clean up test instruction in README.
 
-    3.0.2 Feb-21-08
+    3.0.2 Feb-21-2008
         Improved x86 FreeBSD support.
         Thanks to Bj??rn K??nig.
 
-    3.0.1 Feb-15-08
+    3.0.1 Feb-15-2008
         Fix instruction cache flushing bug on MIPS.
         Thanks to David Daney.
 
-    3.0.0 Feb-15-08
+    3.0.0 Feb-15-2008
         Many changes, mostly thanks to the GCC project.
         Cygnus Solutions is now Red Hat.
 
       [10 years go by...]
 
-    1.20 Oct-5-98
+    1.20 Oct-5-1998
         Raffaele Sena produces ARM port.
 
-    1.19 Oct-5-98
+    1.19 Oct-5-1998
         Fixed x86 long double and long long return support.
         m68k bug fixes from Andreas Schwab.
         Patch for DU assembler compatibility for the Alpha from Richard
           Henderson.
 
-    1.18 Apr-17-98
+    1.18 Apr-17-1998
         Bug fixes and MIPS configuration changes.
 
-    1.17 Feb-24-98
+    1.17 Feb-24-1998
         Bug fixes and m68k port from Andreas Schwab. PowerPC port from
         Geoffrey Keating. Various bug x86, Sparc and MIPS bug fixes.
 
-    1.16 Feb-11-98
+    1.16 Feb-11-1998
         Richard Henderson produces Alpha port.
 
-    1.15 Dec-4-97
+    1.15 Dec-4-1997
         Fixed an n32 ABI bug. New libtool, auto* support.
 
     1.14 May-13-97
@@ -371,56 +378,56 @@
         Fixed a minor portability problem reported by Russ McManus
         <mcm...@eq.gs.com>.
 
-    1.13 Dec-2-96
+    1.13 Dec-2-1996
         Added --enable-purify-safety to keep Purify from complaining
           about certain low level code.
         Sparc fix for calling functions with < 6 args.
         Linux x86 a.out fix.
 
-    1.12 Nov-22-96
+    1.12 Nov-22-1996
         Added missing ffi_type_void, needed for supporting void return
           types. Fixed test case for non MIPS machines. Cygnus Support
           is now Cygnus Solutions.
 
-    1.11 Oct-30-96
+    1.11 Oct-30-1996
         Added notes about GNU make.
 
-    1.10 Oct-29-96
+    1.10 Oct-29-1996
         Added configuration fix for non GNU compilers.
 
-    1.09 Oct-29-96
+    1.09 Oct-29-1996
         Added --enable-debug configure switch. Clean-ups based on LCLint
         feedback. ffi_mips.h is always installed. Many configuration
         fixes. Fixed ffitest.c for sparc builds.
 
-    1.08 Oct-15-96
+    1.08 Oct-15-1996
         Fixed n32 problem. Many clean-ups.
 
-    1.07 Oct-14-96
+    1.07 Oct-14-1996
         Gordon Irlam rewrites v8.S again. Bug fixes.
 
-    1.06 Oct-14-96
+    1.06 Oct-14-1996
         Gordon Irlam improved the sparc port.
 
-    1.05 Oct-14-96
+    1.05 Oct-14-1996
         Interface changes based on feedback.
 
-    1.04 Oct-11-96
+    1.04 Oct-11-1996
         Sparc port complete (modulo struct passing bug).
 
-    1.03 Oct-10-96
+    1.03 Oct-10-1996
         Passing struct args, and returning struct values works for
         all architectures/calling conventions. Expanded tests.
 
-    1.02 Oct-9-96
+    1.02 Oct-9-1996
         Added SGI n32 support. Fixed bugs in both o32 and Linux support.
         Added "make test".
 
-    1.01 Oct-8-96
+    1.01 Oct-8-1996
         Fixed float passing bug in mips version. Restructured some
         of the code. Builds cleanly with SGI tools.
 
-    1.00 Oct-7-96
+    1.00 Oct-7-1996
         First release. No public announcement.
 
 Authors & Credits
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libffi-3.4.3/aclocal.m4 new/libffi-3.4.4/aclocal.m4
--- old/libffi-3.4.3/aclocal.m4 2022-09-19 18:22:20.000000000 +0200
+++ new/libffi-3.4.4/aclocal.m4 2022-10-24 02:09:52.000000000 +0200
@@ -2115,6 +2115,7 @@
 AC_SUBST([am__untar])
 ]) # _AM_PROG_TAR
 
+m4_include([m4/asmcfi.m4])
 m4_include([m4/ax_cc_maxopt.m4])
 m4_include([m4/ax_cflags_warn_all.m4])
 m4_include([m4/ax_check_compile_flag.m4])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libffi-3.4.3/configure new/libffi-3.4.4/configure
--- old/libffi-3.4.3/configure  2022-09-19 18:22:23.000000000 +0200
+++ new/libffi-3.4.4/configure  2022-10-24 02:09:52.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for libffi 3.4.3.
+# Generated by GNU Autoconf 2.71 for libffi 3.4.4.
 #
 # Report bugs to <http://github.com/libffi/libffi/issues>.
 #
@@ -621,8 +621,8 @@
 # Identity of this package.
 PACKAGE_NAME='libffi'
 PACKAGE_TARNAME='libffi'
-PACKAGE_VERSION='3.4.3'
-PACKAGE_STRING='libffi 3.4.3'
+PACKAGE_VERSION='3.4.4'
+PACKAGE_STRING='libffi 3.4.4'
 PACKAGE_BUGREPORT='http://github.com/libffi/libffi/issues'
 PACKAGE_URL=''
 
@@ -1413,7 +1413,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libffi 3.4.3 to adapt to many kinds of systems.
+\`configure' configures libffi 3.4.4 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1485,7 +1485,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libffi 3.4.3:";;
+     short | recursive ) echo "Configuration of libffi 3.4.4:";;
    esac
   cat <<\_ACEOF
 
@@ -1621,7 +1621,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libffi configure 3.4.3
+libffi configure 3.4.4
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2252,7 +2252,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libffi $as_me 3.4.3, which was
+It was created by libffi $as_me 3.4.4, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -3971,7 +3971,7 @@
 
 # Define the identity of the package.
  PACKAGE='libffi'
- VERSION='3.4.3'
+ VERSION='3.4.4'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -19439,29 +19439,42 @@
  esac
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking compiler generates .cfi 
pseudo-ops" >&5
-printf %s "checking compiler generates .cfi pseudo-ops... " >&6; }
-if test ${gcc_cv_cc_cfi_pseudo_op+y}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking assembler .cfi 
pseudo-op support" >&5
+printf %s "checking assembler .cfi pseudo-op support... " >&6; }
+if test ${gcc_cv_as_cfi_pseudo_op+y}
 then :
   printf %s "(cached) " >&6
 else $as_nop
 
-       gcc_cv_cc_cfi_pseudo_op=no
-       echo 'void foo(void) { foo(); }' > conftest.c
-       if $CC $CFLAGS -S conftest.c > /dev/null 2>&1; then
-           if grep -q cfi_startproc conftest.s; then
-               gcc_cv_cc_cfi_pseudo_op=yes
-            fi
-       fi
+    gcc_cv_as_cfi_pseudo_op=unknown
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+asm (".cfi_sections\n\t.cfi_startproc\n\t.cfi_endproc");
+int
+main (void)
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gcc_cv_as_cfi_pseudo_op=yes
+else $as_nop
+  gcc_cv_as_cfi_pseudo_op=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: 
$gcc_cv_cc_cfi_pseudo_op" >&5
-printf "%s\n" "$gcc_cv_cc_cfi_pseudo_op" >&6; }
-if test "x$gcc_cv_cc_cfi_pseudo_op" = xyes; then
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: 
$gcc_cv_as_cfi_pseudo_op" >&5
+printf "%s\n" "$gcc_cv_as_cfi_pseudo_op" >&6; }
+ if test "x$gcc_cv_as_cfi_pseudo_op" = xyes; then
 
 printf "%s\n" "#define HAVE_AS_CFI_PSEUDO_OP 1" >>confdefs.h
 
-fi
+ fi
+
 
 case "$TARGET" in
   SPARC)
@@ -19827,7 +19840,7 @@
        libffi_cv_ro_eh_frame=yes
        echo 'extern void foo (void); void bar (void) { foo (); foo (); }' > 
conftest.c
        if $CC $CFLAGS -c -fpic -fexceptions $libffi_cv_no_lto -o conftest.o 
conftest.c > /dev/null 2>&1; then
-           if $READELF -WS conftest.o | grep -q -n 'eh_frame .* WA'; then
+           if $READELF -WS conftest.o 2>/dev/null | grep -q -n 'eh_frame .* 
WA'; then
                libffi_cv_ro_eh_frame=no
            fi
        fi
@@ -20929,7 +20942,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libffi $as_me 3.4.3, which was
+This file was extended by libffi $as_me 3.4.4, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -20997,7 +21010,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-libffi config.status 3.4.3
+libffi config.status 3.4.4
 configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libffi-3.4.3/configure.ac 
new/libffi-3.4.4/configure.ac
--- old/libffi-3.4.3/configure.ac       2022-09-19 18:21:45.000000000 +0200
+++ new/libffi-3.4.4/configure.ac       2022-10-24 02:07:26.000000000 +0200
@@ -2,7 +2,7 @@
 
 AC_PREREQ([2.71])
 
-AC_INIT([libffi],[3.4.3],[http://github.com/libffi/libffi/issues])
+AC_INIT([libffi],[3.4.4],[http://github.com/libffi/libffi/issues])
 AC_CONFIG_HEADERS([fficonfig.h])
 
 AC_CANONICAL_TARGET
@@ -124,20 +124,7 @@
 
 AC_C_BIGENDIAN
 
-AC_CACHE_CHECK([compiler generates .cfi pseudo-ops],
-  gcc_cv_cc_cfi_pseudo_op, [
-       gcc_cv_cc_cfi_pseudo_op=no
-       echo 'void foo(void) { foo(); }' > conftest.c
-       if $CC $CFLAGS -S conftest.c > /dev/null 2>&1; then
-           if grep -q cfi_startproc conftest.s; then
-               gcc_cv_cc_cfi_pseudo_op=yes
-            fi
-       fi
-       ])
-if test "x$gcc_cv_cc_cfi_pseudo_op" = xyes; then
-   AC_DEFINE(HAVE_AS_CFI_PSEUDO_OP, 1,
-      [Define if your assembler supports .cfi_* directives.])
-fi
+GCC_AS_CFI_PSEUDO_OP
 
 case "$TARGET" in
   SPARC)
@@ -294,7 +281,7 @@
        libffi_cv_ro_eh_frame=yes
        echo 'extern void foo (void); void bar (void) { foo (); foo (); }' > 
conftest.c
        if $CC $CFLAGS -c -fpic -fexceptions $libffi_cv_no_lto -o conftest.o 
conftest.c > /dev/null 2>&1; then
-           if $READELF -WS conftest.o | grep -q -n 'eh_frame .* WA'; then
+           if $READELF -WS conftest.o 2>/dev/null | grep -q -n 'eh_frame .* 
WA'; then
                libffi_cv_ro_eh_frame=no
            fi
        fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libffi-3.4.3/doc/Makefile.in 
new/libffi-3.4.4/doc/Makefile.in
--- old/libffi-3.4.3/doc/Makefile.in    2022-09-19 18:22:24.000000000 +0200
+++ new/libffi-3.4.4/doc/Makefile.in    2022-10-24 02:09:53.000000000 +0200
@@ -90,7 +90,8 @@
 target_triplet = @target@
 subdir = doc
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_maxopt.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/asmcfi.m4 \
+       $(top_srcdir)/m4/ax_cc_maxopt.m4 \
        $(top_srcdir)/m4/ax_cflags_warn_all.m4 \
        $(top_srcdir)/m4/ax_check_compile_flag.m4 \
        $(top_srcdir)/m4/ax_compiler_vendor.m4 \
Binary files old/libffi-3.4.3/doc/libffi.pdf and 
new/libffi-3.4.4/doc/libffi.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libffi-3.4.3/doc/stamp-vti 
new/libffi-3.4.4/doc/stamp-vti
--- old/libffi-3.4.3/doc/stamp-vti      2022-09-19 18:22:49.000000000 +0200
+++ new/libffi-3.4.4/doc/stamp-vti      2022-10-24 02:29:52.000000000 +0200
@@ -1,4 +1,4 @@
-@set UPDATED 19 September 2022
-@set UPDATED-MONTH September 2022
-@set EDITION 3.4.3
-@set VERSION 3.4.3
+@set UPDATED 23 October 2022
+@set UPDATED-MONTH October 2022
+@set EDITION 3.4.4
+@set VERSION 3.4.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libffi-3.4.3/doc/version.texi 
new/libffi-3.4.4/doc/version.texi
--- old/libffi-3.4.3/doc/version.texi   2022-09-19 18:22:49.000000000 +0200
+++ new/libffi-3.4.4/doc/version.texi   2022-10-24 02:16:50.000000000 +0200
@@ -1,4 +1,4 @@
-@set UPDATED 19 September 2022
-@set UPDATED-MONTH September 2022
-@set EDITION 3.4.3
-@set VERSION 3.4.3
+@set UPDATED 23 October 2022
+@set UPDATED-MONTH October 2022
+@set EDITION 3.4.4
+@set VERSION 3.4.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libffi-3.4.3/include/Makefile.in 
new/libffi-3.4.4/include/Makefile.in
--- old/libffi-3.4.3/include/Makefile.in        2022-09-19 18:22:24.000000000 
+0200
+++ new/libffi-3.4.4/include/Makefile.in        2022-10-24 02:09:53.000000000 
+0200
@@ -91,7 +91,8 @@
 target_triplet = @target@
 subdir = include
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_maxopt.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/asmcfi.m4 \
+       $(top_srcdir)/m4/ax_cc_maxopt.m4 \
        $(top_srcdir)/m4/ax_cflags_warn_all.m4 \
        $(top_srcdir)/m4/ax_check_compile_flag.m4 \
        $(top_srcdir)/m4/ax_compiler_vendor.m4 \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libffi-3.4.3/include/ffi.h.in 
new/libffi-3.4.4/include/ffi.h.in
--- old/libffi-3.4.3/include/ffi.h.in   2022-09-19 12:10:22.000000000 +0200
+++ new/libffi-3.4.4/include/ffi.h.in   2022-10-23 17:23:27.000000000 +0200
@@ -406,7 +406,7 @@
 
   /* If this is enabled, then a raw closure has the same layout
      as a regular closure.  We use this to install an intermediate
-     handler to do the transaltion, void** -> ffi_raw*.  */
+     handler to do the translation, void** -> ffi_raw*.  */
 
   void     (*translate_args)(ffi_cif*,void*,void**,void*);
   void      *this_closure;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libffi-3.4.3/libtool-version 
new/libffi-3.4.4/libtool-version
--- old/libffi-3.4.3/libtool-version    2022-09-19 18:24:56.000000000 +0200
+++ new/libffi-3.4.4/libtool-version    2022-10-24 02:06:55.000000000 +0200
@@ -5,7 +5,7 @@
 #
 # Here are a set of rules to help you update your library version
 # information:
-# 
+#
 # 1. Start with version information of `0:0:0' for each libtool library.
 #
 # 2. Update the version information only immediately before a public
@@ -26,4 +26,4 @@
 #    release, then set age to 0.
 #
 # CURRENT:REVISION:AGE
-9:1:1
+9:2:1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libffi-3.4.3/m4/asmcfi.m4 
new/libffi-3.4.4/m4/asmcfi.m4
--- old/libffi-3.4.3/m4/asmcfi.m4       1970-01-01 01:00:00.000000000 +0100
+++ new/libffi-3.4.4/m4/asmcfi.m4       2022-10-23 17:23:27.000000000 +0200
@@ -0,0 +1,13 @@
+AC_DEFUN([GCC_AS_CFI_PSEUDO_OP],
+[AC_CACHE_CHECK([assembler .cfi pseudo-op support],
+    gcc_cv_as_cfi_pseudo_op, [
+    gcc_cv_as_cfi_pseudo_op=unknown
+    AC_TRY_COMPILE([asm (".cfi_sections\n\t.cfi_startproc\n\t.cfi_endproc");],,
+                  [gcc_cv_as_cfi_pseudo_op=yes],
+                  [gcc_cv_as_cfi_pseudo_op=no])
+ ])
+ if test "x$gcc_cv_as_cfi_pseudo_op" = xyes; then
+    AC_DEFINE(HAVE_AS_CFI_PSEUDO_OP, 1,
+             [Define if your assembler supports .cfi_* directives.])
+ fi
+])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libffi-3.4.3/man/Makefile.in 
new/libffi-3.4.4/man/Makefile.in
--- old/libffi-3.4.3/man/Makefile.in    2022-09-19 18:22:24.000000000 +0200
+++ new/libffi-3.4.4/man/Makefile.in    2022-10-24 02:09:53.000000000 +0200
@@ -90,7 +90,8 @@
 target_triplet = @target@
 subdir = man
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_maxopt.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/asmcfi.m4 \
+       $(top_srcdir)/m4/ax_cc_maxopt.m4 \
        $(top_srcdir)/m4/ax_cflags_warn_all.m4 \
        $(top_srcdir)/m4/ax_check_compile_flag.m4 \
        $(top_srcdir)/m4/ax_compiler_vendor.m4 \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libffi-3.4.3/msvc_build/aarch64/aarch64_include/ffi.h 
new/libffi-3.4.4/msvc_build/aarch64/aarch64_include/ffi.h
--- old/libffi-3.4.3/msvc_build/aarch64/aarch64_include/ffi.h   2022-09-19 
11:57:23.000000000 +0200
+++ new/libffi-3.4.4/msvc_build/aarch64/aarch64_include/ffi.h   2022-10-23 
17:23:27.000000000 +0200
@@ -363,7 +363,7 @@
 
   /* If this is enabled, then a raw closure has the same layout 
      as a regular closure.  We use this to install an intermediate 
-     handler to do the transaltion, void** -> ffi_raw*.  */
+     handler to do the translation, void** -> ffi_raw*.  */
 
   void     (*translate_args)(ffi_cif*,void*,void**,void*);
   void      *this_closure;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libffi-3.4.3/src/aarch64/ffi.c 
new/libffi-3.4.4/src/aarch64/ffi.c
--- old/libffi-3.4.3/src/aarch64/ffi.c  2022-09-19 11:57:23.000000000 +0200
+++ new/libffi-3.4.4/src/aarch64/ffi.c  2022-10-23 17:23:27.000000000 +0200
@@ -295,7 +295,7 @@
   if (alignment < 8)
     alignment = 8;
 #endif
-    
+
   nsaa = FFI_ALIGN (nsaa, alignment);
   state->nsaa = nsaa + size;
 
@@ -323,24 +323,55 @@
   switch (type)
     {
     case FFI_TYPE_UINT8:
-      return *(UINT8 *) source;
+      {
+        UINT8 u8;
+        memcpy (&u8, source, sizeof (u8));
+        return u8;
+      }
     case FFI_TYPE_SINT8:
-      return *(SINT8 *) source;
+      {
+        SINT8 s8;
+        memcpy (&s8, source, sizeof (s8));
+        return s8;
+      }
     case FFI_TYPE_UINT16:
-      return *(UINT16 *) source;
+      {
+        UINT16 u16;
+        memcpy (&u16, source, sizeof (u16));
+        return u16;
+      }
     case FFI_TYPE_SINT16:
-      return *(SINT16 *) source;
+      {
+        SINT16 s16;
+        memcpy (&s16, source, sizeof (s16));
+        return s16;
+      }
     case FFI_TYPE_UINT32:
-      return *(UINT32 *) source;
+      {
+        UINT32 u32;
+        memcpy (&u32, source, sizeof (u32));
+        return u32;
+      }
     case FFI_TYPE_INT:
     case FFI_TYPE_SINT32:
-      return *(SINT32 *) source;
+      {
+        SINT32 s32;
+        memcpy (&s32, source, sizeof (s32));
+        return s32;
+      }
     case FFI_TYPE_UINT64:
     case FFI_TYPE_SINT64:
-      return *(UINT64 *) source;
-      break;
+      {
+        UINT64 u64;
+        memcpy (&u64, source, sizeof (u64));
+        return u64;
+      }
     case FFI_TYPE_POINTER:
-      return *(uintptr_t *) source;
+      {
+        uintptr_t uptr;
+        memcpy (&uptr, source, sizeof (uptr));
+        return uptr;
+      }
     default:
       abort();
     }
@@ -825,7 +856,7 @@
     return FFI_BAD_ABI;
 
   void (*start)(void);
-  
+
   if (cif->flags & AARCH64_FLAG_ARG_V)
     start = ffi_closure_SYSV_V;
   else
@@ -863,7 +894,7 @@
 
   /* Initialize the dynamic trampoline. */
   memcpy (tramp, trampoline, sizeof(trampoline));
-  
+
   *(UINT64 *)(tramp + 16) = (uintptr_t)start;
 
   ffi_clear_cache(tramp, tramp + FFI_TRAMPOLINE_SIZE);
@@ -991,7 +1022,7 @@
                     {
                       void *reg = &context->x[state.ngrn];
                       state.ngrn += (unsigned int)n;
-    
+
                       /* Eeek! We need a pointer to the structure, however the
                        homogeneous float elements are being passed in 
individual
                        registers, therefore for float and double the structure
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libffi-3.4.3/src/moxie/ffi.c 
new/libffi-3.4.4/src/moxie/ffi.c
--- old/libffi-3.4.3/src/moxie/ffi.c    2022-09-19 11:57:23.000000000 +0200
+++ new/libffi-3.4.4/src/moxie/ffi.c    2022-10-23 17:23:27.000000000 +0200
@@ -151,7 +151,7 @@
     {
       ffi_type *at = arg_types[i];
       int size = at->size;
-      if (at->type == FFI_TYPE_STRUCT && size > 4)
+      if (at->type == FFI_TYPE_STRUCT) /*  && size > 4) All struct args?? */
         {
           char *argcopy = alloca (size);
           memcpy (argcopy, avalue[i], size);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libffi-3.4.3/src/or1k/ffi.c 
new/libffi-3.4.4/src/or1k/ffi.c
--- old/libffi-3.4.3/src/or1k/ffi.c     2022-09-19 11:57:23.000000000 +0200
+++ new/libffi-3.4.4/src/or1k/ffi.c     2022-10-23 17:23:27.000000000 +0200
@@ -139,7 +139,7 @@
       {
         ffi_type *at = cif->arg_types[i];
         int size = at->size;
-        if (at->type == FFI_TYPE_STRUCT && size > 4)
+        if (at->type == FFI_TYPE_STRUCT) /* && size > 4) All struct args? */
           {
             char *argcopy = alloca (size);
             memcpy (argcopy, avalue[i], size);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libffi-3.4.3/src/riscv/ffi.c 
new/libffi-3.4.4/src/riscv/ffi.c
--- old/libffi-3.4.3/src/riscv/ffi.c    2022-09-19 11:57:23.000000000 +0200
+++ new/libffi-3.4.4/src/riscv/ffi.c    2022-10-23 17:23:27.000000000 +0200
@@ -61,6 +61,7 @@
     int used_integer;
     int used_float;
     size_t *used_stack;
+    void *struct_stack;
 } call_builder;
 
 /* integer (not pointer) less than ABI XLEN */
@@ -227,7 +228,9 @@
 #endif
 
     if (type->size > 2 * __SIZEOF_POINTER__) {
-        /* pass by reference */
+        /* copy to stack and pass by reference */
+        data = memcpy (cb->struct_stack, data, type->size);
+        cb->struct_stack = (size_t *) FFI_ALIGN ((char *) cb->struct_stack + 
type->size, __SIZEOF_POINTER__);
         marshal_atom(cb, FFI_TYPE_POINTER, &data);
     } else if (IS_INT(type->type) || type->type == FFI_TYPE_POINTER) {
         marshal_atom(cb, type->type, data);
@@ -335,10 +338,12 @@
        that all remaining arguments are long long / __int128 */
     size_t arg_bytes = cif->nargs <= 3 ? 0 :
         FFI_ALIGN(2 * sizeof(size_t) * (cif->nargs - 3), STKALIGN);
+    /* Allocate space for copies of big structures.  */
+    size_t struct_bytes = FFI_ALIGN (cif->bytes, STKALIGN);
     size_t rval_bytes = 0;
     if (rvalue == NULL && cif->rtype->size > 2*__SIZEOF_POINTER__)
         rval_bytes = FFI_ALIGN(cif->rtype->size, STKALIGN);
-    size_t alloc_size = arg_bytes + rval_bytes + sizeof(call_context);
+    size_t alloc_size = arg_bytes + rval_bytes + struct_bytes + 
sizeof(call_context);
 
     /* the assembly code will deallocate all stack data at lower addresses
        than the argument region, so we need to allocate the frame and the
@@ -358,8 +363,9 @@
 
     call_builder cb;
     cb.used_float = cb.used_integer = 0;
-    cb.aregs = (call_context*)(alloc_base + arg_bytes + rval_bytes);
+    cb.aregs = (call_context*)(alloc_base + arg_bytes + rval_bytes + 
struct_bytes);
     cb.used_stack = (void*)alloc_base;
+    cb.struct_stack = (void *) (alloc_base + arg_bytes + rval_bytes);
 
     int return_by_ref = passed_by_ref(&cb, cif->rtype, 0);
     if (return_by_ref)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libffi-3.4.3/src/x86/sysv_intel.S 
new/libffi-3.4.4/src/x86/sysv_intel.S
--- old/libffi-3.4.3/src/x86/sysv_intel.S       2022-09-19 11:57:23.000000000 
+0200
+++ new/libffi-3.4.4/src/x86/sysv_intel.S       2022-10-23 17:23:27.000000000 
+0200
@@ -743,20 +743,23 @@
 # define COMDAT(X)
 #endif
 
-/* #if defined(__PIC__) */
-/*     COMDAT(C(__x86.get_pc_thunk.bx)) */
-/* C(__x86.get_pc_thunk.bx): */
-/*     movl    (%esp), %ebx */
-/*     ret */
-/* ENDF(C(__x86.get_pc_thunk.bx)) */
-/* # if defined X86_DARWIN || defined HAVE_HIDDEN_VISIBILITY_ATTRIBUTE */
-/*     COMDAT(C(__x86.get_pc_thunk.dx)) */
-/* C(__x86.get_pc_thunk.dx): */
-/*     movl    (%esp), %edx */
-/*     ret */
-/* ENDF(C(__x86.get_pc_thunk.dx)) */
-/* #endif /* DARWIN || HIDDEN */ */
-/* #endif /* __PIC__ */ */
+#if 0
+#if defined(__PIC__)
+       COMDAT(C(__x86.get_pc_thunk.bx))
+C(__x86.get_pc_thunk.bx):
+       movl    (%esp), %ebx
+       ret
+ENDF(C(__x86.get_pc_thunk.bx))
+# if defined X86_DARWIN || defined HAVE_HIDDEN_VISIBILITY_ATTRIBUTE
+       COMDAT(C(__x86.get_pc_thunk.dx))
+C(__x86.get_pc_thunk.dx):
+       movl    (%esp), %edx
+       ret
+ENDF(C(__x86.get_pc_thunk.dx))
+#endif /* DARWIN || HIDDEN */
+#endif /* __PIC__ */
+#endif
+
 
 #if 0
 /* Sadly, OSX cctools-as doesn't understand .cfi directives at all.  */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libffi-3.4.3/testsuite/Makefile.in 
new/libffi-3.4.4/testsuite/Makefile.in
--- old/libffi-3.4.3/testsuite/Makefile.in      2022-09-19 18:22:24.000000000 
+0200
+++ new/libffi-3.4.4/testsuite/Makefile.in      2022-10-24 02:09:53.000000000 
+0200
@@ -90,7 +90,8 @@
 target_triplet = @target@
 subdir = testsuite
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_maxopt.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/asmcfi.m4 \
+       $(top_srcdir)/m4/ax_cc_maxopt.m4 \
        $(top_srcdir)/m4/ax_cflags_warn_all.m4 \
        $(top_srcdir)/m4/ax_check_compile_flag.m4 \
        $(top_srcdir)/m4/ax_compiler_vendor.m4 \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libffi-3.4.3/testsuite/lib/libffi.exp 
new/libffi-3.4.4/testsuite/lib/libffi.exp
--- old/libffi-3.4.3/testsuite/lib/libffi.exp   2022-09-19 11:57:23.000000000 
+0200
+++ new/libffi-3.4.4/testsuite/lib/libffi.exp   2022-10-23 17:23:27.000000000 
+0200
@@ -397,20 +397,23 @@
 
     lappend options "libs= -lffi"
 
-    if { [string match "aarch64*-*-linux*" $target_triplet] } {
-       lappend options "libs= -lpthread"
-    }
+    if { ![string match "*android*" $target_triplet] } {
 
-    # this may be required for g++, but just confused clang.
-    if { [string match "*.cc" $source] } {
-        lappend options "c++"
-      if { [string match "*-*-darwin*" $target_triplet] } {
-         lappend options "libs= -lc++"
-      }
-    }
+        if { [string match "aarch64*-*-linux*" $target_triplet] } {
+            lappend options "libs= -lpthread"
+        }
+
+        # this may be required for g++, but just confused clang.
+        if { [string match "*.cc" $source] } {
+            lappend options "c++"
+            if { [string match "*-*-darwin*" $target_triplet] } {
+                lappend options "libs= -lc++"
+            }
+        }
 
-    if { [string match "arc*-*-linux*" $target_triplet] } {
-       lappend options "libs= -lpthread"
+        if { [string match "arc*-*-linux*" $target_triplet] } {
+            lappend options "libs= -lpthread"
+        }
     }
 
     verbose "options: $options"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libffi-3.4.3/testsuite/libffi.bhaible/test-call.c 
new/libffi-3.4.4/testsuite/libffi.bhaible/test-call.c
--- old/libffi-3.4.3/testsuite/libffi.bhaible/test-call.c       2022-09-19 
11:57:23.000000000 +0200
+++ new/libffi-3.4.4/testsuite/libffi.bhaible/test-call.c       2022-10-23 
17:23:27.000000000 +0200
@@ -50,6 +50,7 @@
     case 3:
       vsprintf(&rbuf2[strlen(rbuf2)], format, args);
       printf("%s", rbuf2);
+      fflush (stdout);
       if (strcmp (rbuf1, rbuf2)) abort();
       break;
     }

Reply via email to