Sat Mar 21 16:08:35 2020 UTC ()
Fix build for ILP32 powerpc, which doesn't have 128-bit-length data types.


(rin)
diff -r1.51 -r1.52 pkgsrc/devel/libffi/distinfo
diff -r0 -r1.1 pkgsrc/devel/libffi/patches/patch-src_powerpc_ffi.c
diff -r0 -r1.1 pkgsrc/devel/libffi/patches/patch-src_powerpc_ffi__powerpc.h

cvs diff -r1.51 -r1.52 pkgsrc/devel/libffi/distinfo (expand / switch to unified diff)

--- pkgsrc/devel/libffi/distinfo 2020/03/16 09:35:47 1.51
+++ pkgsrc/devel/libffi/distinfo 2020/03/21 16:08:34 1.52
@@ -1,15 +1,17 @@ @@ -1,15 +1,17 @@
1$NetBSD: distinfo,v 1.51 2020/03/16 09:35:47 rin Exp $ 1$NetBSD: distinfo,v 1.52 2020/03/21 16:08:34 rin Exp $
2 2
3SHA1 (libffi-3.3.tar.gz) = 8df6cb570c8d6596a67d1c0773bf00650154f7aa 3SHA1 (libffi-3.3.tar.gz) = 8df6cb570c8d6596a67d1c0773bf00650154f7aa
4RMD160 (libffi-3.3.tar.gz) = 2cd43b66d792f1bad76df2e19a8411beacfcb8e0 4RMD160 (libffi-3.3.tar.gz) = 2cd43b66d792f1bad76df2e19a8411beacfcb8e0
5SHA512 (libffi-3.3.tar.gz) = 61513801a156f11420f541d325de697131846487122d6bdcf5491b18b4da788589f5c0bb07e88e396495d3be5830d74e9135595e2b8ddbfe95c448d8597fbd6f 5SHA512 (libffi-3.3.tar.gz) = 61513801a156f11420f541d325de697131846487122d6bdcf5491b18b4da788589f5c0bb07e88e396495d3be5830d74e9135595e2b8ddbfe95c448d8597fbd6f
6Size (libffi-3.3.tar.gz) = 1305466 bytes 6Size (libffi-3.3.tar.gz) = 1305466 bytes
7SHA1 (patch-configure) = 81f1f2bee39a40f2a34b3a6cea0b210d13037482 7SHA1 (patch-configure) = 81f1f2bee39a40f2a34b3a6cea0b210d13037482
8SHA1 (patch-configure_host) = 94678e6c264ee116c339eb92f840909a663f28f7 8SHA1 (patch-configure_host) = 94678e6c264ee116c339eb92f840909a663f28f7
9SHA1 (patch-src_aarch64_ffi.c) = c5bd73abcb7445b073eb3e61feda212ee3396246 9SHA1 (patch-src_aarch64_ffi.c) = c5bd73abcb7445b073eb3e61feda212ee3396246
10SHA1 (patch-src_closures.c) = f818bd0384f146a17964e2320df1321d8b83ec73 10SHA1 (patch-src_closures.c) = f818bd0384f146a17964e2320df1321d8b83ec73
11SHA1 (patch-src_m68k_ffi.c) = 5179cfd150bc7de15eb1c5ee0a327016c2c32b3e 11SHA1 (patch-src_m68k_ffi.c) = 5179cfd150bc7de15eb1c5ee0a327016c2c32b3e
12SHA1 (patch-src_m88k_elfbsd.S) = 6572c7fa39c00096cb4a80bb88993ff1b4aaa8cc 12SHA1 (patch-src_m88k_elfbsd.S) = 6572c7fa39c00096cb4a80bb88993ff1b4aaa8cc
13SHA1 (patch-src_mips_ffi.c) = 7353f68f73917af6bff0b90393ac3404ea54fb99 13SHA1 (patch-src_mips_ffi.c) = 7353f68f73917af6bff0b90393ac3404ea54fb99
14SHA1 (patch-src_mips_ffitarget.h) = 7fe62634803ccb5a168e76d597409c9af809c448 14SHA1 (patch-src_mips_ffitarget.h) = 7fe62634803ccb5a168e76d597409c9af809c448
 15SHA1 (patch-src_powerpc_ffi.c) = b68a93d0f8552efaa8c50256da3af3bde5de7059
 16SHA1 (patch-src_powerpc_ffi__powerpc.h) = 573b6f0f496ed7b8b6bc0df197515020519ae024
15SHA1 (patch-testsuite_libffi.call_float2.c) = 2a42a428b0cc55065968c7f0748026da12b70b9d 17SHA1 (patch-testsuite_libffi.call_float2.c) = 2a42a428b0cc55065968c7f0748026da12b70b9d

File Added: pkgsrc/devel/libffi/patches/patch-src_powerpc_ffi.c
$NetBSD: patch-src_powerpc_ffi.c,v 1.1 2020/03/21 16:08:34 rin Exp $

Workaround for ILP32 powerpc, which doesn't have 128-bit-length data types.

--- src/powerpc/ffi.c.orig	2019-11-18 20:35:19.000000000 +0900
+++ src/powerpc/ffi.c	2020-03-22 00:26:32.702408263 +0900
@@ -87,7 +87,11 @@ ffi_call_int (ffi_cif *cif,
      For ELFv2 ABI, use a bounce buffer for homogeneous structs too,
      for similar reasons. This bounce buffer must be aligned to 16
      bytes for use with homogeneous structs of vectors (float128).  */
+#ifdef POWERPC64
   float128 smst_buffer[8];
+#else
+  __int64_t smst_buffer[16];
+#endif
   extended_cif ecif;
 
   ecif.cif = cif;

File Added: pkgsrc/devel/libffi/patches/patch-src_powerpc_ffi__powerpc.h
$NetBSD: patch-src_powerpc_ffi__powerpc.h,v 1.1 2020/03/21 16:08:34 rin 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
@@ -57,6 +57,7 @@ typedef union
   double d;
 } ffi_dblfl;
 
+#ifdef POWERPC64
 #if defined(__FLOAT128_TYPE__)
 typedef _Float128 float128;
 #elif defined(__FLOAT128__)
@@ -64,6 +65,7 @@ typedef __float128 float128;
 #else
 typedef __int128 float128;
 #endif
+#endif /* POWERPC64 */
 
 void FFI_HIDDEN ffi_closure_SYSV (void);
 void FFI_HIDDEN ffi_go_closure_sysv (void);
@@ -97,9 +99,11 @@ ffi_status FFI_HIDDEN ffi_prep_closure_l
 						    void (*) (ffi_cif *, void *,
 							      void **, void *),
 						    void *, void *);
+#ifdef POWERPC64
 int FFI_HIDDEN ffi_closure_helper_LINUX64 (ffi_cif *,
 					   void (*) (ffi_cif *, void *,
 						     void **, void *),
 					   void *, void *,
 					   unsigned long *, ffi_dblfl *,
 					   float128 *);
+#endif