summaryrefslogtreecommitdiff
path: root/data/libffi
diff options
context:
space:
mode:
authorSam Bingner <sam@bingner.com>2019-03-30 23:05:57 -1000
committerSam Bingner <sam@bingner.com>2019-03-30 23:05:57 -1000
commitd9683717dad98e5444a6c1db3d74504366248110 (patch)
treebc466cdc39ec96c857c6ab42d52e33cd34d09436 /data/libffi
parent3e6395f40520bb45d5bef4543d61e2ba529629b1 (diff)
parent5297837aba56e3766f10ab6cffb52a680664ec92 (diff)
Merge branch 'telesphoreo'
Diffstat (limited to 'data/libffi')
-rw-r--r--data/libffi/_metadata/version2
-rw-r--r--data/libffi/assembler.diff34
-rw-r--r--data/libffi/clearcache.diff14
-rw-r--r--data/libffi/incompetant.diff42
-rw-r--r--data/libffi/make.sh2
-rw-r--r--data/libffi/private.diff12
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)
- {