Received: by mail.netbsd.org (Postfix, from userid 605) id E522884E55; Mon, 26 Sep 2022 18:43:50 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by mail.netbsd.org (Postfix) with ESMTP id 21E3F84DBD for ; Mon, 26 Sep 2022 18:43:50 +0000 (UTC) X-Virus-Scanned: amavisd-new at netbsd.org Received: from mail.netbsd.org ([127.0.0.1]) by localhost (mail.netbsd.org [127.0.0.1]) (amavisd-new, port 10025) with ESMTP id o2JeQS5h8YDT for ; Mon, 26 Sep 2022 18:43:49 +0000 (UTC) Received: from cvs.NetBSD.org (ivanova.NetBSD.org [IPv6:2001:470:a085:999:28c:faff:fe03:5984]) by mail.netbsd.org (Postfix) with ESMTP id 31FFB84C2C for ; Mon, 26 Sep 2022 18:43:49 +0000 (UTC) Received: by cvs.NetBSD.org (Postfix, from userid 500) id 23056FA90; Mon, 26 Sep 2022 18:43:49 +0000 (UTC) Content-Transfer-Encoding: 7bit Content-Type: multipart/mixed; boundary="_----------=_1664217829192470" MIME-Version: 1.0 Date: Mon, 26 Sep 2022 18:43:49 +0000 From: "Adam Ciarcinski" Subject: CVS commit: pkgsrc/devel/libffi To: pkgsrc-changes@NetBSD.org Reply-To: adam@netbsd.org X-Mailer: log_accum Message-Id: <20220926184349.23056FA90@cvs.NetBSD.org> Sender: pkgsrc-changes-owner@NetBSD.org List-Id: Precedence: bulk List-Unsubscribe: This is a multi-part message in MIME format. --_----------=_1664217829192470 Content-Disposition: inline Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII" Module Name: pkgsrc Committed By: adam Date: Mon Sep 26 18:43:49 UTC 2022 Modified Files: pkgsrc/devel/libffi: Makefile distinfo pkgsrc/devel/libffi/patches: patch-configure patch-src_aarch64_ffi.c patch-src_mips_ffi.c Log Message: libffi: updated to 3.4.3 3.4.3 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. Fix x32 static trampolines. Fix 32-bit x86 stdcall stack corruption. Fix ILP32 aarch64 support. To generate a diff of this commit: cvs rdiff -u -r1.50 -r1.51 pkgsrc/devel/libffi/Makefile cvs rdiff -u -r1.61 -r1.62 pkgsrc/devel/libffi/distinfo cvs rdiff -u -r1.3 -r1.4 pkgsrc/devel/libffi/patches/patch-configure \ pkgsrc/devel/libffi/patches/patch-src_aarch64_ffi.c cvs rdiff -u -r1.1 -r1.2 pkgsrc/devel/libffi/patches/patch-src_mips_ffi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. --_----------=_1664217829192470 Content-Disposition: inline Content-Length: 7439 Content-Transfer-Encoding: binary Content-Type: text/x-diff; charset=us-ascii Modified files: Index: pkgsrc/devel/libffi/Makefile diff -u pkgsrc/devel/libffi/Makefile:1.50 pkgsrc/devel/libffi/Makefile:1.51 --- pkgsrc/devel/libffi/Makefile:1.50 Tue Jun 28 11:31:46 2022 +++ pkgsrc/devel/libffi/Makefile Mon Sep 26 18:43:48 2022 @@ -1,7 +1,6 @@ -# $NetBSD: Makefile,v 1.50 2022/06/28 11:31:46 wiz Exp $ +# $NetBSD: Makefile,v 1.51 2022/09/26 18:43:48 adam Exp $ -DISTNAME= libffi-3.4.2 -PKGREVISION= 3 +DISTNAME= libffi-3.4.3 CATEGORIES= devel MASTER_SITES= ${MASTER_SITE_GITHUB:=libffi/} GITHUB_RELEASE= v${PKGVERSION_NOREV} Index: pkgsrc/devel/libffi/distinfo diff -u pkgsrc/devel/libffi/distinfo:1.61 pkgsrc/devel/libffi/distinfo:1.62 --- pkgsrc/devel/libffi/distinfo:1.61 Sun Jan 9 20:07:00 2022 +++ pkgsrc/devel/libffi/distinfo Mon Sep 26 18:43:48 2022 @@ -1,16 +1,16 @@ -$NetBSD: distinfo,v 1.61 2022/01/09 20:07:00 tm Exp $ +$NetBSD: distinfo,v 1.62 2022/09/26 18:43:48 adam Exp $ -BLAKE2s (libffi-3.4.2.tar.gz) = a5773b741a815ea113d4b8e2ec62a0ea59a6cfb61367c39bc99276670efd5dfb -SHA512 (libffi-3.4.2.tar.gz) = 31bad35251bf5c0adb998c88ff065085ca6105cf22071b9bd4b5d5d69db4fadf16cadeec9baca944c4bb97b619b035bb8279de8794b922531fddeb0779eb7fb1 -Size (libffi-3.4.2.tar.gz) = 1351355 bytes -SHA1 (patch-configure) = 3976a6d3bf1c4b0fab9d62c2bde5c3675593a1eb +BLAKE2s (libffi-3.4.3.tar.gz) = 329813f5e9ace34bb55820d98e1dc0f8d1a2232280e8321322f90f393811a825 +SHA512 (libffi-3.4.3.tar.gz) = 6e3620d3842ae0f983c47c3268364be32b6eeb2fc708b23d141531730e9149abb035c618b295be834999eadef64fabfa39df21c955c40473f3bbc9fd3170bad8 +Size (libffi-3.4.3.tar.gz) = 1358634 bytes +SHA1 (patch-configure) = f5ca2947f3aadf51d59198a5339f81f19dc51cd2 SHA1 (patch-configure_host) = a4c99cd0fbbbe0f2c806d662b85a6e2c56b31168 -SHA1 (patch-src_aarch64_ffi.c) = 016c504c55780a89ad2ecf17fea2355c9d1ac06d +SHA1 (patch-src_aarch64_ffi.c) = e46083e6e6892524868b88dfbcd292f11db036d9 SHA1 (patch-src_arm_sysv.S) = 9aaa8e12e627d68126fbc4ff02e06ed45c94da1a SHA1 (patch-src_closures.c) = 13c426ad678439d2781477aa2b10497a22223427 SHA1 (patch-src_m68k_ffi.c) = 5179cfd150bc7de15eb1c5ee0a327016c2c32b3e SHA1 (patch-src_m88k_elfbsd.S) = 6572c7fa39c00096cb4a80bb88993ff1b4aaa8cc -SHA1 (patch-src_mips_ffi.c) = 7353f68f73917af6bff0b90393ac3404ea54fb99 +SHA1 (patch-src_mips_ffi.c) = cbdfdab5d23cbb7c403b00166959f792ebfabb4a SHA1 (patch-src_mips_ffitarget.h) = 86f144b1dd62d912f1b03016772e2715f336bf6d SHA1 (patch-src_powerpc_ffi.c) = b68a93d0f8552efaa8c50256da3af3bde5de7059 SHA1 (patch-src_powerpc_ffi__powerpc.h) = fafb125b28069d5108726ac7b2d4efdc4fdadf92 Index: pkgsrc/devel/libffi/patches/patch-configure diff -u pkgsrc/devel/libffi/patches/patch-configure:1.3 pkgsrc/devel/libffi/patches/patch-configure:1.4 --- pkgsrc/devel/libffi/patches/patch-configure:1.3 Sun Jan 9 20:07:00 2022 +++ pkgsrc/devel/libffi/patches/patch-configure Mon Sep 26 18:43:48 2022 @@ -1,17 +1,17 @@ -$NetBSD: patch-configure,v 1.3 2022/01/09 20:07:00 tm Exp $ +$NetBSD: patch-configure,v 1.4 2022/09/26 18:43:48 adam Exp $ Cannot use malloc on this target (NetBSD, Solaris), so, we revert to alternative means. Important is *-*-netbsd* and the change from *-pc-solaris* to *-*-solaris*. ---- configure.orig 2019-11-23 13:59:04.000000000 +0000 +--- configure.orig 2022-09-19 16:22:23.000000000 +0000 +++ configure -@@ -18483,7 +18483,7 @@ case "$target" in - $as_echo "#define FFI_EXEC_TRAMPOLINE_TABLE 1" >>confdefs.h +@@ -19721,7 +19721,7 @@ case "$target" in + printf "%s\n" "#define FFI_EXEC_TRAMPOLINE_TABLE 1" >>confdefs.h ;; - *-apple-* | *-*-freebsd* | *-*-kfreebsd* | *-*-openbsd* | *-pc-solaris* | *-linux-android*) + *-apple-* | *-*-freebsd* | *-*-kfreebsd* | *-*-netbsd* | *-*-openbsd* | *-*-solaris* | *-linux-android*) - $as_echo "#define FFI_MMAP_EXEC_WRIT 1" >>confdefs.h + printf "%s\n" "#define FFI_MMAP_EXEC_WRIT 1" >>confdefs.h Index: pkgsrc/devel/libffi/patches/patch-src_aarch64_ffi.c diff -u pkgsrc/devel/libffi/patches/patch-src_aarch64_ffi.c:1.3 pkgsrc/devel/libffi/patches/patch-src_aarch64_ffi.c:1.4 --- pkgsrc/devel/libffi/patches/patch-src_aarch64_ffi.c:1.3 Wed Dec 8 22:28:37 2021 +++ pkgsrc/devel/libffi/patches/patch-src_aarch64_ffi.c Mon Sep 26 18:43:48 2022 @@ -1,18 +1,18 @@ -$NetBSD: patch-src_aarch64_ffi.c,v 1.3 2021/12/08 22:28:37 tnn Exp $ +$NetBSD: patch-src_aarch64_ffi.c,v 1.4 2022/09/26 18:43:48 adam Exp $ For closures, aarch64 needs explicit invalidation of the code segments i-cache after data is written through the data mapping. But we don't have any way to look up the address of the code segment right now so for now skip doing the cache flush. ---- src/aarch64/ffi.c.orig 2021-06-27 15:17:08.000000000 +0000 +--- src/aarch64/ffi.c.orig 2022-09-19 09:57:23.000000000 +0000 +++ src/aarch64/ffi.c -@@ -846,7 +846,8 @@ ffi_prep_closure_loc (ffi_closure *closu +@@ -869,7 +869,8 @@ ffi_prep_closure_loc (ffi_closure *closu ffi_clear_cache(tramp, tramp + FFI_TRAMPOLINE_SIZE); /* Also flush the cache for code mapping. */ --#ifdef _WIN32 -+#if defined(_WIN32) || defined(__NetBSD__) +-# ifdef _WIN32 ++# if defined(_WIN32) || defined(__NetBSD__) + // ffi_data_to_code_pointer is broken on NetBSD // Not using dlmalloc.c for Windows ARM64 builds // so calling ffi_data_to_code_pointer() isn't necessary Index: pkgsrc/devel/libffi/patches/patch-src_mips_ffi.c diff -u pkgsrc/devel/libffi/patches/patch-src_mips_ffi.c:1.1 pkgsrc/devel/libffi/patches/patch-src_mips_ffi.c:1.2 --- pkgsrc/devel/libffi/patches/patch-src_mips_ffi.c:1.1 Wed Feb 26 19:15:44 2020 +++ pkgsrc/devel/libffi/patches/patch-src_mips_ffi.c Mon Sep 26 18:43:48 2022 @@ -1,27 +1,26 @@ -$NetBSD: patch-src_mips_ffi.c,v 1.1 2020/02/26 19:15:44 adam Exp $ +$NetBSD: patch-src_mips_ffi.c,v 1.2 2022/09/26 18:43:48 adam Exp $ Fixes to support the various NetBSD mips ports. ---- src/mips/ffi.c.orig 2019-10-31 14:49:54.000000000 +0000 +--- src/mips/ffi.c.orig 2022-09-19 09:57:23.000000000 +0000 +++ src/mips/ffi.c -@@ -476,6 +476,7 @@ static ffi_status ffi_prep_cif_machdep_i - ((cif->arg_types)[index]->type << (arg_reg * FFI_FLAG_BITS)); +@@ -532,6 +532,7 @@ static ffi_status ffi_prep_cif_machdep_i + cif->flags += t->type << (arg_reg * FFI_FLAG_BITS); arg_reg++; break; +#ifdef __mips64 case FFI_TYPE_LONGDOUBLE: /* Align it. */ arg_reg = FFI_ALIGN(arg_reg, 2); -@@ -494,7 +495,7 @@ static ffi_status ffi_prep_cif_machdep_i - arg_reg++; +@@ -605,6 +606,7 @@ static ffi_status ffi_prep_cif_machdep_i + break; } - break; -- + break; +#endif + case FFI_TYPE_STRUCT: loc = arg_reg * FFI_SIZEOF_ARG; - cif->flags += calc_n32_struct_flags(soft_float || index >= nfixedargs, -@@ -556,6 +557,7 @@ static ffi_status ffi_prep_cif_machdep_i +@@ -666,6 +668,7 @@ static ffi_status ffi_prep_cif_machdep_i cif->flags += cif->rtype->type << (FFI_FLAG_BITS * 8); break; @@ -29,10 +28,10 @@ Fixes to support the various NetBSD mips case FFI_TYPE_LONGDOUBLE: /* Long double is returned as if it were a struct containing two doubles. */ -@@ -572,6 +574,7 @@ static ffi_status ffi_prep_cif_machdep_i - << (4 + (FFI_FLAG_BITS * 8)); - } - break; +@@ -715,6 +718,7 @@ static ffi_status ffi_prep_cif_machdep_i + } + break; + } +#endif default: cif->flags += FFI_TYPE_INT << (FFI_FLAG_BITS * 8); --_----------=_1664217829192470--