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 @@ -68,6 +68,11 @@ extern unsigned char ffi_arm_trampoline[12] FFI_HIDDEN #include #endif +#ifdef __arm__ +#include +#include +#endif + /* Forward declares. */ static int vfp_type_p (const ffi_type *); static void layout_vfp_args (ffi_cif *); @@ -625,6 +630,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 # if defined(FFI_EXEC_STATIC_TRAMP) if (ffi_tramp_is_present(closure))