diff options
Diffstat (limited to 'data/libffi')
-rw-r--r-- | data/libffi/_metadata/version | 2 | ||||
-rw-r--r-- | data/libffi/assembler.diff | 34 | ||||
-rw-r--r-- | data/libffi/clearcache.diff | 14 | ||||
-rw-r--r-- | data/libffi/incompetant.diff | 42 | ||||
-rw-r--r-- | data/libffi/make.sh | 2 | ||||
-rw-r--r-- | data/libffi/private.diff | 12 |
6 files changed, 92 insertions, 14 deletions
diff --git a/data/libffi/_metadata/version b/data/libffi/_metadata/version index e4604e3af..08ebb261e 100644 --- a/data/libffi/_metadata/version +++ b/data/libffi/_metadata/version @@ -1 +1 @@ -3.2.1 +1:3.2.1 diff --git a/data/libffi/assembler.diff b/data/libffi/assembler.diff new file mode 100644 index 000000000..344d7efc6 --- /dev/null +++ b/data/libffi/assembler.diff @@ -0,0 +1,34 @@ +diff -ur libffi-3.2.1/src/arm/sysv.S libffi-3.2.1+iPhone/src/arm/sysv.S +--- libffi-3.2.1/src/arm/sysv.S 2014-11-08 02:47:24.000000000 -1000 ++++ libffi-3.2.1+iPhone/src/arm/sysv.S 2019-03-30 22:41:22.000000000 -1000 +@@ -322,7 +322,9 @@ + Add VFP FPU directive here. This is only compiled into the library + under EABI. */ + #ifdef __ARM_EABI__ ++#ifndef __APPLE__ + .fpu vfp ++#endif + + @ r0: fn + @ r1: &ecif +@@ -416,7 +418,9 @@ + + .ffi_call_VFP_end: + UNWIND .fnend ++#ifdef __ELF__ + .size CNAME(ffi_call_VFP),.ffi_call_VFP_end-CNAME(ffi_call_VFP) ++#endif + + + ARM_FUNC_START(ffi_closure_VFP) +@@ -478,8 +482,10 @@ + + .ffi_closure_VFP_end: + UNWIND .fnend ++#ifdef __ELF__ + .size CNAME(ffi_closure_VFP),.ffi_closure_VFP_end-CNAME(ffi_closure_VFP) + #endif ++#endif + + ENTRY(ffi_arm_trampoline) + stmfd sp!, {r0-r3} diff --git a/data/libffi/clearcache.diff b/data/libffi/clearcache.diff new file mode 100644 index 000000000..7e4566482 --- /dev/null +++ b/data/libffi/clearcache.diff @@ -0,0 +1,14 @@ +diff -ru libffi-3.0.10/src/arm/ffi.c libffi-3.0.10+iPhone/src/arm/ffi.c +--- libffi-3.0.10/src/arm/ffi.c 2011-08-23 14:28:04.000000000 +0000 ++++ libffi-3.0.10+iPhone/src/arm/ffi.c 2012-03-18 23:34:32.000000000 +0000 +@@ -32,6 +32,10 @@ + + #include <stdlib.h> + ++#ifdef __APPLE__ ++#define __clear_cache(a, b) ++#endif ++ + /* Forward declares. */ + static int vfp_type_p (ffi_type *); + static void layout_vfp_args (ffi_cif *); diff --git a/data/libffi/incompetant.diff b/data/libffi/incompetant.diff new file mode 100644 index 000000000..9f33cc57d --- /dev/null +++ b/data/libffi/incompetant.diff @@ -0,0 +1,42 @@ +diff -ur libffi-3.2.1/src/arm/ffi.c libffi-3.2.1+iPhone/src/arm/ffi.c +--- libffi-3.2.1/src/arm/ffi.c 2014-11-08 02:47:24.000000000 -1000 ++++ libffi-3.2.1+iPhone/src/arm/ffi.c 2019-03-30 22:46:09.000000000 -1000 +@@ -749,7 +749,7 @@ + free (closure); + } + +-#else ++#endif + + #define FFI_INIT_TRAMPOLINE(TRAMP,FUN,CTX) \ + ({ unsigned char *__tramp = (unsigned char*)(TRAMP); \ +@@ -765,8 +765,6 @@ + mapping. */ \ + }) + +-#endif +- + /* the cif must already be prep'ed */ + + ffi_status +@@ -788,13 +786,19 @@ + return FFI_BAD_ABI; + + #if FFI_EXEC_TRAMPOLINE_TABLE ++if (closure != codeloc) { + void **config = FFI_TRAMPOLINE_CODELOC_CONFIG(codeloc); + config[0] = closure; + config[1] = closure_func; +-#else ++} else { ++#endif ++ + FFI_INIT_TRAMPOLINE (&closure->tramp[0], \ + closure_func, \ + codeloc); ++ ++#if FFI_EXEC_TRAMPOLINE_TABLE ++} + #endif + + closure->cif = cif; diff --git a/data/libffi/make.sh b/data/libffi/make.sh index d7183e3da..06a51d34b 100644 --- a/data/libffi/make.sh +++ b/data/libffi/make.sh @@ -1,6 +1,6 @@ pkg:setup autoreconf -f -i pkg:configure -pkg:make -j8 +pkg:make pkg:install pkg: rm -rvf /usr/share diff --git a/data/libffi/private.diff b/data/libffi/private.diff deleted file mode 100644 index 2ebff3a2a..000000000 --- a/data/libffi/private.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -ur libffi-3.2.1/src/aarch64/ffi.c libffi-3.2.1+iPhone/src/aarch64/ffi.c ---- libffi-3.2.1/src/aarch64/ffi.c 2014-11-12 01:57:29.000000000 -1000 -+++ libffi-3.2.1+iPhone/src/aarch64/ffi.c 2018-08-05 09:19:35.000000000 -1000 -@@ -960,7 +960,7 @@ - descriptors, invokes the wrapped function, then marshalls the return - value back into the call context. */ - --void FFI_HIDDEN -+void - ffi_closure_SYSV_inner (ffi_closure *closure, struct call_context *context, - void *stack) - { |