2cc662a07f
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.
34 lines
1.1 KiB
C
34 lines
1.1 KiB
C
$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 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__) && defined(__HAVE_FLOAT128)
|
|
typedef _Float128 float128;
|
|
#elif defined(__FLOAT128__)
|
|
@@ -64,6 +65,7 @@ typedef __float128 float128;
|
|
#else
|
|
typedef char float128[16] __attribute__((aligned(16)));
|
|
#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
|