pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/devel/libffi libffi: updated to 3.4.2
details: https://anonhg.NetBSD.org/pkgsrc/rev/ec9ca62ebcb9
branches: trunk
changeset: 770758:ec9ca62ebcb9
user: adam <adam%pkgsrc.org@localhost>
date: Wed Dec 08 08:20:17 2021 +0000
description:
libffi: updated to 3.4.2
3.4.2 Jun-28-21
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.
Add support for Intel Control-flow Enforcement Technology (CET).
Add support for ARM Pointer Authentication (PA).
Fix 32-bit PPC regression.
Fix MIPS soft-float problem.
Enable tmpdir override with the $LIBFFI_TMPDIR environment variable.
Enable compatibility with MSVC runtime stack checking.
Reject float and small integer argument in ffi_prep_cif_var().
Callers must promote these types themselves.
diffstat:
devel/libffi/Makefile | 8 +-
devel/libffi/distinfo | 19 ++--
devel/libffi/patches/patch-configure_host | 14 +-
devel/libffi/patches/patch-src_aarch64_ffi.c | 10 +-
devel/libffi/patches/patch-src_closures.c | 12 +-
devel/libffi/patches/patch-src_mips_ffitarget.h | 6 +-
devel/libffi/patches/patch-src_powerpc_ffi__darwin.c | 75 -------------------
devel/libffi/patches/patch-src_powerpc_ffi__powerpc.h | 10 +-
8 files changed, 39 insertions(+), 115 deletions(-)
diffs (272 lines):
diff -r 77d121ac6e13 -r ec9ca62ebcb9 devel/libffi/Makefile
--- a/devel/libffi/Makefile Wed Dec 08 08:09:40 2021 +0000
+++ b/devel/libffi/Makefile Wed Dec 08 08:20:17 2021 +0000
@@ -1,9 +1,9 @@
-# $NetBSD: Makefile,v 1.45 2021/05/24 19:50:00 wiz Exp $
+# $NetBSD: Makefile,v 1.46 2021/12/08 08:20:17 adam Exp $
-DISTNAME= libffi-3.3
-PKGREVISION= 5
+DISTNAME= libffi-3.4.2
CATEGORIES= devel
-MASTER_SITES= ftp://sourceware.org/pub/libffi/
+MASTER_SITES= ${MASTER_SITE_GITHUB:=libffi/}
+GITHUB_RELEASE= v${PKGVERSION_NOREV}
MAINTAINER= asau%inbox.ru@localhost
HOMEPAGE= https://www.sourceware.org/libffi/
diff -r 77d121ac6e13 -r ec9ca62ebcb9 devel/libffi/distinfo
--- a/devel/libffi/distinfo Wed Dec 08 08:09:40 2021 +0000
+++ b/devel/libffi/distinfo Wed Dec 08 08:20:17 2021 +0000
@@ -1,18 +1,17 @@
-$NetBSD: distinfo,v 1.58 2021/10/26 10:15:19 nia Exp $
+$NetBSD: distinfo,v 1.59 2021/12/08 08:20:17 adam Exp $
-BLAKE2s (libffi-3.3.tar.gz) = ced14508de91f54b4bc5af39f6127def7ca9eea755dc764fa0c30bf19962bf93
-SHA512 (libffi-3.3.tar.gz) = 61513801a156f11420f541d325de697131846487122d6bdcf5491b18b4da788589f5c0bb07e88e396495d3be5830d74e9135595e2b8ddbfe95c448d8597fbd6f
-Size (libffi-3.3.tar.gz) = 1305466 bytes
+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) = 604b205963e01c2dce7d5636543920abdd9c8638
-SHA1 (patch-configure_host) = 368d7add3d857be804b784f6c32281b0c940e7bd
-SHA1 (patch-src_aarch64_ffi.c) = c5bd73abcb7445b073eb3e61feda212ee3396246
+SHA1 (patch-configure_host) = a4c99cd0fbbbe0f2c806d662b85a6e2c56b31168
+SHA1 (patch-src_aarch64_ffi.c) = a13638a78280f32c4da828ec560ce7a70bb71474
SHA1 (patch-src_arm_sysv.S) = 9aaa8e12e627d68126fbc4ff02e06ed45c94da1a
-SHA1 (patch-src_closures.c) = f818bd0384f146a17964e2320df1321d8b83ec73
+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_ffitarget.h) = 7fe62634803ccb5a168e76d597409c9af809c448
+SHA1 (patch-src_mips_ffitarget.h) = 86f144b1dd62d912f1b03016772e2715f336bf6d
SHA1 (patch-src_powerpc_ffi.c) = b68a93d0f8552efaa8c50256da3af3bde5de7059
-SHA1 (patch-src_powerpc_ffi__darwin.c) = 8da71571830bb5613fc3dc34a6f9707a0e7e7586
-SHA1 (patch-src_powerpc_ffi__powerpc.h) = 573b6f0f496ed7b8b6bc0df197515020519ae024
+SHA1 (patch-src_powerpc_ffi__powerpc.h) = fafb125b28069d5108726ac7b2d4efdc4fdadf92
SHA1 (patch-testsuite_libffi.call_float2.c) = 2a42a428b0cc55065968c7f0748026da12b70b9d
diff -r 77d121ac6e13 -r ec9ca62ebcb9 devel/libffi/patches/patch-configure_host
--- a/devel/libffi/patches/patch-configure_host Wed Dec 08 08:09:40 2021 +0000
+++ b/devel/libffi/patches/patch-configure_host Wed Dec 08 08:20:17 2021 +0000
@@ -1,10 +1,10 @@
-$NetBSD: patch-configure_host,v 1.2 2020/05/05 02:46:50 tsutsui Exp $
+$NetBSD: patch-configure_host,v 1.3 2021/12/08 08:20:17 adam Exp $
Readd support for NetBSD/mips, sh3el, and hppa.
---- configure.host.orig 2019-11-22 23:55:36.000000000 +0000
+--- configure.host.orig 2021-06-27 15:17:08.000000000 +0000
+++ configure.host
-@@ -58,7 +58,7 @@ case "${host}" in
+@@ -67,7 +67,7 @@ case "${host}" in
SOURCES="ffi.c eabi.S"
;;
@@ -13,16 +13,16 @@
TARGET=PA_LINUX; TARGETDIR=pa
SOURCES="ffi.c linux.S"
;;
-@@ -167,7 +167,7 @@ case "${host}" in
+@@ -173,7 +173,7 @@ case "${host}" in
mips-sgi-irix5.* | mips-sgi-irix6.* | mips*-*-rtems*)
TARGET=MIPS; TARGETDIR=mips
;;
-- mips*-*linux* | mips*-*-openbsd*)
-+ mips*-*linux* | mips*-*-openbsd* | mips*-*-netbsd*)
+- mips*-*linux* | mips*-*-openbsd* | mips*-*-freebsd*)
++ mips*-*linux* | mips*-*-openbsd* | mips*-*-freebsd* | mips*-*-netbsd*)
# Support 128-bit long double for NewABI.
HAVE_LONG_DOUBLE='defined(__mips64)'
TARGET=MIPS; TARGETDIR=mips
-@@ -220,7 +220,7 @@ case "${host}" in
+@@ -233,7 +233,7 @@ case "${host}" in
SOURCES="ffi.c sysv.S"
;;
diff -r 77d121ac6e13 -r ec9ca62ebcb9 devel/libffi/patches/patch-src_aarch64_ffi.c
--- a/devel/libffi/patches/patch-src_aarch64_ffi.c Wed Dec 08 08:09:40 2021 +0000
+++ b/devel/libffi/patches/patch-src_aarch64_ffi.c Wed Dec 08 08:20:17 2021 +0000
@@ -1,18 +1,18 @@
-$NetBSD: patch-src_aarch64_ffi.c,v 1.1 2020/02/28 22:37:24 tnn Exp $
+$NetBSD: patch-src_aarch64_ffi.c,v 1.2 2021/12/08 08:20:17 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 2019-10-31 14:49:54.000000000 +0000
+--- src/aarch64/ffi.c.orig 2021-06-27 15:17:08.000000000 +0000
+++ src/aarch64/ffi.c
-@@ -808,7 +808,8 @@ ffi_prep_closure_loc (ffi_closure *closu
+@@ -846,7 +846,8 @@ ffi_prep_closure_loc (ffi_closure *closu
ffi_clear_cache(tramp, tramp + FFI_TRAMPOLINE_SIZE);
/* Also flush the cache for code mapping. */
--#ifdef _M_ARM64
-+#if defined(_M_ARM64) || defined(__NetBSD__)
+-#ifdef _WIN32
++#ifdef _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
diff -r 77d121ac6e13 -r ec9ca62ebcb9 devel/libffi/patches/patch-src_closures.c
--- a/devel/libffi/patches/patch-src_closures.c Wed Dec 08 08:09:40 2021 +0000
+++ b/devel/libffi/patches/patch-src_closures.c Wed Dec 08 08:20:17 2021 +0000
@@ -1,10 +1,10 @@
-$NetBSD: patch-src_closures.c,v 1.4 2020/02/28 18:14:28 tnn Exp $
+$NetBSD: patch-src_closures.c,v 1.5 2021/12/08 08:20:17 adam Exp $
provide stub of ffi_data_to_code_pointer to get aarch64 to link
---- src/closures.c.orig 2019-11-20 11:15:41.000000000 +0000
+--- src/closures.c.orig 2021-06-27 18:03:12.000000000 +0000
+++ src/closures.c
-@@ -37,6 +37,7 @@
+@@ -38,6 +38,7 @@
#ifdef __NetBSD__
#include <sys/param.h>
@@ -12,9 +12,9 @@
#endif
#if __NetBSD_Version__ - 0 >= 799007200
-@@ -109,6 +110,14 @@ ffi_closure_free (void *ptr)
- munmap(dataseg, rounded_size);
- munmap(codeseg, rounded_size);
+@@ -119,6 +120,14 @@ ffi_tramp_is_present (__attribute__((unu
+ {
+ return 0;
}
+
+void *
diff -r 77d121ac6e13 -r ec9ca62ebcb9 devel/libffi/patches/patch-src_mips_ffitarget.h
--- a/devel/libffi/patches/patch-src_mips_ffitarget.h Wed Dec 08 08:09:40 2021 +0000
+++ b/devel/libffi/patches/patch-src_mips_ffitarget.h Wed Dec 08 08:20:17 2021 +0000
@@ -1,14 +1,14 @@
-$NetBSD: patch-src_mips_ffitarget.h,v 1.1 2020/02/26 19:15:44 adam Exp $
+$NetBSD: patch-src_mips_ffitarget.h,v 1.2 2021/12/08 08:20:17 adam Exp $
Make a minimal adjustment to support the various NetBSD mips ports.
---- src/mips/ffitarget.h.orig 2019-10-31 14:49:54.000000000 +0000
+--- src/mips/ffitarget.h.orig 2021-06-27 15:17:08.000000000 +0000
+++ src/mips/ffitarget.h
@@ -41,8 +41,10 @@
#define _MIPS_SIM_ABI32 1
#define _MIPS_SIM_NABI32 2
#define _MIPS_SIM_ABI64 3
--#elif !defined(__OpenBSD__)
+-#elif !defined(__OpenBSD__) && !defined(__FreeBSD__)
+#elif defined(__sgi)
# include <sgidefs.h>
+#else
diff -r 77d121ac6e13 -r ec9ca62ebcb9 devel/libffi/patches/patch-src_powerpc_ffi__darwin.c
--- a/devel/libffi/patches/patch-src_powerpc_ffi__darwin.c Wed Dec 08 08:09:40 2021 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-$NetBSD: patch-src_powerpc_ffi__darwin.c,v 1.1 2020/07/09 09:42:58 hauke Exp $
-
-There is no GO support for Darwin/powerpc, so we get undefined symbols.
-
---- src/powerpc/ffi_darwin.c.orig 2019-10-31 14:49:54.000000000 +0000
-+++ src/powerpc/ffi_darwin.c
-@@ -909,8 +909,10 @@ ffi_prep_cif_machdep (ffi_cif *cif)
- extern void ffi_call_AIX(extended_cif *, long, unsigned, unsigned *,
- void (*fn)(void), void (*fn2)(void));
-
-+#if defined(FFI_GO_CLOSURES)
- extern void ffi_call_go_AIX(extended_cif *, long, unsigned, unsigned *,
- void (*fn)(void), void (*fn2)(void), void *closure);
-+#endif /* FFI_GO_CLOSURES */
-
- extern void ffi_call_DARWIN(extended_cif *, long, unsigned, unsigned *,
- void (*fn)(void), void (*fn2)(void), ffi_type*);
-@@ -950,6 +952,7 @@ ffi_call (ffi_cif *cif, void (*fn)(void)
- }
- }
-
-+#if defined(FFI_GO_CLOSURES)
- void
- ffi_call_go (ffi_cif *cif, void (*fn) (void), void *rvalue, void **avalue,
- void *closure)
-@@ -981,6 +984,7 @@ ffi_call_go (ffi_cif *cif, void (*fn) (v
- break;
- }
- }
-+#endif /* FFI_GO_CLOSURES */
-
- static void flush_icache(char *);
- static void flush_range(char *, int);
-@@ -1110,6 +1114,7 @@ ffi_prep_closure_loc (ffi_closure* closu
- return FFI_OK;
- }
-
-+#if defined(FFI_GO_CLOSURES)
- ffi_status
- ffi_prep_go_closure (ffi_go_closure* closure,
- ffi_cif* cif,
-@@ -1133,6 +1138,7 @@ ffi_prep_go_closure (ffi_go_closure* clo
- }
- return FFI_OK;
- }
-+#endif /* FFI_GO_CLOSURES */
-
- static void
- flush_icache(char *addr)
-@@ -1168,9 +1174,11 @@ ffi_type *
- ffi_closure_helper_DARWIN (ffi_closure *, void *,
- unsigned long *, ffi_dblfl *);
-
-+#if defined(FFI_GO_CLOSURES)
- ffi_type *
- ffi_go_closure_helper_DARWIN (ffi_go_closure*, void *,
- unsigned long *, ffi_dblfl *);
-+#endif /* FFI_GO_CLOSURES */
-
- /* Basically the trampoline invokes ffi_closure_ASM, and on
- entry, r11 holds the address of the closure.
-@@ -1430,6 +1438,7 @@ ffi_closure_helper_DARWIN (ffi_closure *
- closure->user_data, rvalue, pgr, pfr);
- }
-
-+#if defined(FFI_GO_CLOSURES)
- ffi_type *
- ffi_go_closure_helper_DARWIN (ffi_go_closure *closure, void *rvalue,
- unsigned long *pgr, ffi_dblfl *pfr)
-@@ -1437,4 +1446,4 @@ ffi_go_closure_helper_DARWIN (ffi_go_clo
- return ffi_closure_helper_common (closure->cif, closure->fun,
- closure, rvalue, pgr, pfr);
- }
--
-+#endif /* FFI_GO_CLOSURES */
diff -r 77d121ac6e13 -r ec9ca62ebcb9 devel/libffi/patches/patch-src_powerpc_ffi__powerpc.h
--- a/devel/libffi/patches/patch-src_powerpc_ffi__powerpc.h Wed Dec 08 08:09:40 2021 +0000
+++ b/devel/libffi/patches/patch-src_powerpc_ffi__powerpc.h Wed Dec 08 08:20:17 2021 +0000
@@ -1,20 +1,20 @@
-$NetBSD: patch-src_powerpc_ffi__powerpc.h,v 1.1 2020/03/21 16:08:34 rin Exp $
+$NetBSD: patch-src_powerpc_ffi__powerpc.h,v 1.2 2021/12/08 08:20:17 adam Exp $
Workaround for ILP32 powerpc, which doesn't have 128-bit-length data types.
---- src/powerpc/ffi_powerpc.h.orig 2019-11-18 20:35:19.000000000 +0900
-+++ src/powerpc/ffi_powerpc.h 2020-03-22 00:31:24.149783131 +0900
+--- src/powerpc/ffi_powerpc.h.orig 2021-06-27 15:17:08.000000000 +0000
++++ src/powerpc/ffi_powerpc.h
@@ -57,6 +57,7 @@ typedef union
double d;
} ffi_dblfl;
+#ifdef POWERPC64
- #if defined(__FLOAT128_TYPE__)
+ #if defined(__FLOAT128_TYPE__) && defined(__HAVE_FLOAT128)
typedef _Float128 float128;
#elif defined(__FLOAT128__)
@@ -64,6 +65,7 @@ typedef __float128 float128;
#else
- typedef __int128 float128;
+ typedef char float128[16] __attribute__((aligned(16)));
#endif
+#endif /* POWERPC64 */
Home |
Main Index |
Thread Index |
Old Index