openbsd-ports/devel/libffi/patches/patch-src_arm_ffi_c
jasper 55c2bcafc0 update to libffi-3.3
tested on amd64 and arm64
2020-02-10 18:06:34 +00:00

37 lines
975 B
Plaintext

$OpenBSD: patch-src_arm_ffi_c,v 1.9 2020/02/10 18:06:34 jasper Exp $
https://svnweb.freebsd.org/ports/head/devel/libffi/files/patch-src__arm__ffi.c?revision=337118&view=markup
Index: src/arm/ffi.c
--- src/arm/ffi.c.orig
+++ src/arm/ffi.c
@@ -55,6 +55,11 @@ extern unsigned int ffi_arm_trampoline[3] FFI_HIDDEN;
#endif
#endif
+#ifdef __arm__
+#include <machine/sysarch.h>
+#include <stdint.h>
+#endif
+
/* Forward declares. */
static int vfp_type_p (const ffi_type *);
static void layout_vfp_args (ffi_cif *);
@@ -591,6 +596,16 @@ ffi_prep_closure_loc (ffi_closure * closure,
config[0] = closure;
config[1] = closure_func;
#else
+
+#ifdef __arm__
+#define __clear_cache(start, end) do { \
+ struct arm_sync_icache_args ua; \
+ \
+ ua.addr = (uintptr_t)(start); \
+ ua.len = (char *)(end) - (char *)start; \
+ sysarch(ARM_SYNC_ICACHE, &ua); \
+ } while (0);
+#endif
#ifndef _M_ARM
memcpy(closure->tramp, ffi_arm_trampoline, 8);