diff options
Diffstat (limited to 'data')
-rw-r--r-- | data/libffi/_metadata/version | 2 | ||||
-rw-r--r-- | data/libffi/assembler.diff | 60 | ||||
-rw-r--r-- | data/libffi/clearcache.diff | 18 | ||||
-rw-r--r-- | data/libffi/cname.diff | 30 | ||||
-rw-r--r-- | data/libffi/debug.diff | 24 | ||||
-rw-r--r-- | data/libffi/incompetant.diff | 103 | ||||
-rw-r--r-- | data/libffi/libffi-130618.tgz | bin | 982313 -> 0 bytes | |||
-rw-r--r-- | data/libffi/libffi-3.0.10.tar.gz | bin | 0 -> 753346 bytes | |||
-rw-r--r-- | data/libffi/make.sh | 10 | ||||
-rw-r--r-- | data/libffi/private.diff | 12 | ||||
-rw-r--r-- | data/libffi/vfpfp.diff | 61 |
11 files changed, 196 insertions, 124 deletions
diff --git a/data/libffi/_metadata/version b/data/libffi/_metadata/version index d83f6df35..4c45776d3 100644 --- a/data/libffi/_metadata/version +++ b/data/libffi/_metadata/version @@ -1 +1 @@ -130618 +1:3.0.10 diff --git a/data/libffi/assembler.diff b/data/libffi/assembler.diff index 8d46ac5f1..415a85d56 100644 --- a/data/libffi/assembler.diff +++ b/data/libffi/assembler.diff @@ -1,43 +1,33 @@ -Index: libffi/src/arm/sysv.S -=================================================================== ---- gcc/libffi/src/arm/sysv.S (revision 130618) -+++ gcc+iPhone/libffi/src/arm/sysv.S (working copy) -@@ -38,7 +38,7 @@ - #else - #define CNAME(x) x - #endif --#define ENTRY(x) .globl CNAME(x); .type CNAME(x),%function; CNAME(x): -+#define ENTRY(x) .globl CNAME(x); CNAME(x): - #endif +diff -ru libffi-3.0.10/src/arm/sysv.S libffi-3.0.10+iPhone/src/arm/sysv.S +--- libffi-3.0.10/src/arm/sysv.S 2011-08-23 14:27:24.000000000 +0000 ++++ libffi-3.0.10+iPhone/src/arm/sysv.S 2012-03-18 22:32:12.000000000 +0000 +@@ -335,7 +335,9 @@ - #ifdef __ELF__ -@@ -219,7 +219,7 @@ + /* Below are VFP hard-float ABI call and closure implementations. + Add VFP FPU directive here. */ ++#ifndef __APPLE__ + .fpu vfp ++#endif - .ffi_call_SYSV_end: + @ r0: fn + @ r1: &ecif +@@ -428,7 +430,9 @@ + + .ffi_call_VFP_end: UNWIND .fnend -- .size CNAME(ffi_call_SYSV),.ffi_call_SYSV_end-CNAME(ffi_call_SYSV) -+@ .size CNAME(ffi_call_SYSV),.ffi_call_SYSV_end-CNAME(ffi_call_SYSV) ++#ifdef __ELF__ + .size CNAME(ffi_call_VFP),.ffi_call_VFP_end-CNAME(ffi_call_VFP) ++#endif - /* - unsigned int FFI_HIDDEN -@@ -235,11 +235,11 @@ - stmfd sp!, {ip, lr} - UNWIND .save {r0, lr} - add r2, sp, #8 -- .pad #16 -+@ .pad #16 - sub sp, sp, #16 - str sp, [sp, #8] - add r1, sp, #8 -- bl ffi_closure_SYSV_inner -+ bl _ffi_closure_SYSV_inner - cmp r0, #FFI_TYPE_INT - beq .Lretint -@@ -291,5 +291,5 @@ + ARM_FUNC_START ffi_closure_VFP +@@ -490,7 +494,9 @@ - .ffi_closure_SYSV_end: + .ffi_closure_VFP_end: UNWIND .fnend -- .size CNAME(ffi_closure_SYSV),.ffi_closure_SYSV_end-CNAME(ffi_closure_SYSV) -+@ .size CNAME(ffi_closure_SYSV),.ffi_closure_SYSV_end-CNAME(ffi_closure_SYSV) ++#ifdef __ELF__ + .size CNAME(ffi_closure_VFP),.ffi_closure_VFP_end-CNAME(ffi_closure_VFP) ++#endif + #if defined __ELF__ && defined __linux__ + .section .note.GNU-stack,"",%progbits diff --git a/data/libffi/clearcache.diff b/data/libffi/clearcache.diff index e9bbdfa9a..7e4566482 100644 --- a/data/libffi/clearcache.diff +++ b/data/libffi/clearcache.diff @@ -1,14 +1,14 @@ -diff -ru gcc/libffi/src/arm/ffi.c gcc+iPhone/libffi/src/arm/ffi.c ---- gcc/libffi/src/arm/ffi.c 2007-09-04 17:52:45.000000000 +0000 -+++ gcc+iPhone/libffi/src/arm/ffi.c 2010-11-23 23:18:14.000000000 +0000 -@@ -270,6 +270,10 @@ - return; - } +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 + - /* How to make a trampoline. */ - - #define FFI_INIT_TRAMPOLINE(TRAMP,FUN,CTX) \ + /* Forward declares. */ + static int vfp_type_p (ffi_type *); + static void layout_vfp_args (ffi_cif *); diff --git a/data/libffi/cname.diff b/data/libffi/cname.diff new file mode 100644 index 000000000..bfa2419b5 --- /dev/null +++ b/data/libffi/cname.diff @@ -0,0 +1,30 @@ +diff -ru libffi-3.0.10/src/arm/sysv.S libffi-3.0.10+iPhone/src/arm/sysv.S +--- libffi-3.0.10/src/arm/sysv.S 2011-08-23 14:27:24.000000000 +0000 ++++ libffi-3.0.10+iPhone/src/arm/sysv.S 2012-03-18 23:31:44.000000000 +0000 +@@ -187,7 +187,7 @@ + @ r1 already set + + @ Call ffi_prep_args(stack, &ecif) +- bl ffi_prep_args ++ bl CNAME(ffi_prep_args) + + @ move first 4 parameters in registers + ldmia sp, {r0-r3} +@@ -362,7 +362,7 @@ + sub r2, fp, #64 @ VFP scratch space + + @ Call ffi_prep_args(stack, &ecif, vfp_space) +- bl ffi_prep_args ++ bl CNAME(ffi_prep_args) + + @ Load VFP register args if needed + cmp r0, #0 +@@ -444,7 +444,7 @@ + sub sp, sp, #72 + str sp, [sp, #64] + add r1, sp, #64 +- bl ffi_closure_SYSV_inner ++ bl CNAME(ffi_closure_SYSV_inner) + + cmp r0, #FFI_TYPE_INT + beq .Lretint_vfp diff --git a/data/libffi/debug.diff b/data/libffi/debug.diff new file mode 100644 index 000000000..bf33daa01 --- /dev/null +++ b/data/libffi/debug.diff @@ -0,0 +1,24 @@ +diff -ru libffi-3.0.10/Makefile.am libffi-3.0.10+iPhone/Makefile.am +--- libffi-3.0.10/Makefile.am 2011-08-23 14:28:04.000000000 +0000 ++++ libffi-3.0.10+iPhone/Makefile.am 2012-03-19 00:29:07.000000000 +0000 +@@ -178,7 +178,7 @@ + libffi_convenience_la_SOURCES = $(libffi_la_SOURCES) + nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES) + +-AM_CFLAGS = -g ++AM_CFLAGS = + if FFI_DEBUG + # Build debug. Define FFI_DEBUG on the commandline so that, when building with + # MSVC, it can link against the debug CRT. +diff -ru libffi-3.0.10/Makefile.in libffi-3.0.10+iPhone/Makefile.in +--- libffi-3.0.10/Makefile.in 2011-08-23 14:28:35.000000000 +0000 ++++ libffi-3.0.10+iPhone/Makefile.in 2012-03-19 00:29:18.000000000 +0000 +@@ -501,7 +501,7 @@ + $(am__append_24) $(am__append_25) $(am__append_26) + libffi_convenience_la_SOURCES = $(libffi_la_SOURCES) + nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES) +-AM_CFLAGS = -g $(am__append_27) ++AM_CFLAGS = $(am__append_27) + libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS) $(AM_LTLDFLAGS) + AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src + AM_CCASFLAGS = $(AM_CPPFLAGS) diff --git a/data/libffi/incompetant.diff b/data/libffi/incompetant.diff new file mode 100644 index 000000000..3245f3077 --- /dev/null +++ b/data/libffi/incompetant.diff @@ -0,0 +1,103 @@ +diff -ru libffi-3.0.10/include/ffi.h.in libffi-3.0.10+iPhone/include/ffi.h.in +--- libffi-3.0.10/include/ffi.h.in 2011-08-23 14:28:00.000000000 +0000 ++++ libffi-3.0.10+iPhone/include/ffi.h.in 2012-03-18 23:19:19.000000000 +0000 +@@ -274,7 +274,16 @@ + __declspec(align(8)) + #endif + typedef struct { ++union { ++#if @FFI_EXEC_TRAMPOLINE_TABLE@ ++ struct { ++ void *trampoline_table; ++ void *trampoline_table_entry; ++ }; ++#endif + char tramp[FFI_TRAMPOLINE_SIZE]; ++}; ++ + ffi_cif *cif; + void (*fun)(ffi_cif*,void*,void**,void*); + void *user_data; +@@ -307,7 +316,15 @@ + # pragma pack 8 + #endif + typedef struct { ++union { ++#if @FFI_EXEC_TRAMPOLINE_TABLE@ ++ struct { ++ void *trampoline_table; ++ void *trampoline_table_entry; ++ }; ++#endif + char tramp[FFI_TRAMPOLINE_SIZE]; ++}; + + ffi_cif *cif; + +@@ -328,7 +345,15 @@ + } ffi_raw_closure; + + typedef struct { ++union { ++#if @FFI_EXEC_TRAMPOLINE_TABLE@ ++ struct { ++ void *trampoline_table; ++ void *trampoline_table_entry; ++ }; ++#endif + char tramp[FFI_TRAMPOLINE_SIZE]; ++}; + + ffi_cif *cif; + +diff -ru libffi-3.0.10/libtool-version libffi-3.0.10+iPhone/libtool-version +--- libffi-3.0.10/libtool-version 2011-08-22 18:38:12.000000000 +0000 ++++ libffi-3.0.10+iPhone/libtool-version 2012-03-18 23:08:29.000000000 +0000 +@@ -26,4 +26,4 @@ + # release, then set age to 0. + # + # CURRENT:REVISION:AGE +-5:10:0 ++4:1:0 +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:15:50.000000000 +0000 +@@ -552,7 +552,7 @@ + free (closure); + } + +-#else ++#endif + + #define FFI_INIT_TRAMPOLINE(TRAMP,FUN,CTX) \ + ({ unsigned char *__tramp = (unsigned char*)(TRAMP); \ +@@ -570,8 +570,6 @@ + mapping. */ \ + }) + +-#endif +- + /* the cif must already be prep'ed */ + + ffi_status +@@ -591,13 +589,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/libffi-130618.tgz b/data/libffi/libffi-130618.tgz Binary files differdeleted file mode 100644 index d1d035c7d..000000000 --- a/data/libffi/libffi-130618.tgz +++ /dev/null diff --git a/data/libffi/libffi-3.0.10.tar.gz b/data/libffi/libffi-3.0.10.tar.gz Binary files differnew file mode 100644 index 000000000..3c44c6609 --- /dev/null +++ b/data/libffi/libffi-3.0.10.tar.gz diff --git a/data/libffi/make.sh b/data/libffi/make.sh index d8fe64d54..39dd00bfc 100644 --- a/data/libffi/make.sh +++ b/data/libffi/make.sh @@ -1,8 +1,6 @@ pkg:setup -mkdir ../build -cd ../build -PKG_CONF=../gcc/libffi/configure pkg:configure --with-sysroot="${PKG_ROOT}" -make +pkg:configure +pkg:make pkg:install -mv "${PKG_DEST}"/usr/lib/gcc/*/include "${PKG_DEST}"/usr -pkg: rm -rfv /usr/lib/gcc +mv "${PKG_DEST}"/usr/lib/libffi-*/include "${PKG_DEST}"/usr +rmdir "${PKG_DEST}"/usr/lib/libffi-* diff --git a/data/libffi/private.diff b/data/libffi/private.diff deleted file mode 100644 index f30e5bdac..000000000 --- a/data/libffi/private.diff +++ /dev/null @@ -1,12 +0,0 @@ -Index: libffi/src/arm/ffi.c -=================================================================== ---- gcc/libffi/src/arm/ffi.c (revision 130618) -+++ gcc+iPhone/libffi/src/arm/ffi.c (working copy) -@@ -199,6 +199,7 @@ - - /* This function is jumped to by the trampoline */ - -+__private_extern__ - unsigned int - ffi_closure_SYSV_inner (closure, respp, args) - ffi_closure *closure; diff --git a/data/libffi/vfpfp.diff b/data/libffi/vfpfp.diff deleted file mode 100644 index 4713be660..000000000 --- a/data/libffi/vfpfp.diff +++ /dev/null @@ -1,61 +0,0 @@ -diff -ru gcc/libffi/src/arm/sysv.S gcc+iPhone/libffi/src/arm/sysv.S ---- gcc/libffi/src/arm/sysv.S 2007-09-04 17:52:45.000000000 +0000 -+++ gcc+iPhone/libffi/src/arm/sysv.S 2008-09-07 12:59:53.000000000 +0000 -@@ -188,7 +188,7 @@ - - @ return INT - cmp r3, #FFI_TYPE_INT --#ifdef __SOFTFP__ -+#if defined(__SOFTFP__) || defined(__VFP_FP__) - cmpne r3, #FFI_TYPE_FLOAT - #endif - streq r0, [r2] -@@ -196,12 +196,12 @@ - - @ return INT64 - cmp r3, #FFI_TYPE_SINT64 --#ifdef __SOFTFP__ -+#if defined(__SOFTFP__) || defined(__VFP_FP__) - cmpne r3, #FFI_TYPE_DOUBLE - #endif - stmeqia r2, {r0, r1} - --#ifndef __SOFTFP__ -+#if !defined(__SOFTFP__) && !defined(__VFP_FP__) - beq LSYM(Lepilogue) - - @ return FLOAT -@@ -244,21 +244,21 @@ - beq .Lretint - - cmp r0, #FFI_TYPE_FLOAT --#ifdef __SOFTFP__ -+#if defined(__SOFTFP__) || defined(__VFP_FP__) - beq .Lretint - #else - beq .Lretfloat - #endif - - cmp r0, #FFI_TYPE_DOUBLE --#ifdef __SOFTFP__ -+#if defined(__SOFTFP__) || defined(__VFP_FP__) - beq .Lretlonglong - #else - beq .Lretdouble - #endif - - cmp r0, #FFI_TYPE_LONGDOUBLE --#ifdef __SOFTFP__ -+#if defined(__SOFTFP__) || defined(__VFP_FP__) - beq .Lretlonglong - #else - beq .Lretlongdouble -@@ -277,7 +277,7 @@ - ldr r1, [sp, #4] - b .Lclosure_epilogue - --#ifndef __SOFTFP__ -+#if !defined(__SOFTFP__) && !defined(__VFP_FP__) - .Lretfloat: - ldfs f0, [sp] - b .Lclosure_epilogue |