summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs/libffi/files/libffi-3.0.8-arm.patch')
-rw-r--r--dev-libs/libffi/files/libffi-3.0.8-arm.patch80
1 files changed, 80 insertions, 0 deletions
diff --git a/dev-libs/libffi/files/libffi-3.0.8-arm.patch b/dev-libs/libffi/files/libffi-3.0.8-arm.patch
new file mode 100644
index 000000000000..57cc8fdd2797
--- /dev/null
+++ b/dev-libs/libffi/files/libffi-3.0.8-arm.patch
@@ -0,0 +1,80 @@
+--- libffi-3.0.7.orig/src/arm/sysv.S
++++ libffi-3.0.7/src/arm/sysv.S
+@@ -67,11 +67,18 @@
+
+ #if defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) \
+ || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) \
+- || defined(__ARM_ARCH_6ZK__)
++ || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) \
++ || defined(__ARM_ARCH_6M__)
+ # undef __ARM_ARCH__
+ # define __ARM_ARCH__ 6
+ #endif
+
++#if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) \
++ || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__)
++# undef __ARM_ARCH__
++# define __ARM_ARCH__ 7
++#endif
++
+ #if __ARM_ARCH__ >= 5
+ # define call_reg(x) blx x
+ #elif defined (__ARM_ARCH_4T__)
+@@ -189,7 +196,7 @@
+
+ @ return INT
+ cmp r3, #FFI_TYPE_INT
+-#ifdef __SOFTFP__
++#if defined(__SOFTFP__) || defined(__ARM_EABI__)
+ cmpne r3, #FFI_TYPE_FLOAT
+ #endif
+ streq r0, [r2]
+@@ -197,12 +204,12 @@
+
+ @ return INT64
+ cmp r3, #FFI_TYPE_SINT64
+-#ifdef __SOFTFP__
++#if defined(__SOFTFP__) || defined(__ARM_EABI__)
+ cmpne r3, #FFI_TYPE_DOUBLE
+ #endif
+ stmeqia r2, {r0, r1}
+
+-#ifndef __SOFTFP__
++#if !defined(__SOFTFP__) && !defined(__ARM_EABI__)
+ beq LSYM(Lepilogue)
+
+ @ return FLOAT
+@@ -245,21 +252,21 @@
+ beq .Lretint
+
+ cmp r0, #FFI_TYPE_FLOAT
+-#ifdef __SOFTFP__
++#if defined(__SOFTFP__) || defined(__ARM_EABI__)
+ beq .Lretint
+ #else
+ beq .Lretfloat
+ #endif
+
+ cmp r0, #FFI_TYPE_DOUBLE
+-#ifdef __SOFTFP__
++#if defined(__SOFTFP__) || defined(__ARM_EABI__)
+ beq .Lretlonglong
+ #else
+ beq .Lretdouble
+ #endif
+
+ cmp r0, #FFI_TYPE_LONGDOUBLE
+-#ifdef __SOFTFP__
++#if defined(__SOFTFP__) || defined(__ARM_EABI__)
+ beq .Lretlonglong
+ #else
+ beq .Lretlongdouble
+@@ -278,7 +285,7 @@
+ ldr r1, [sp, #4]
+ b .Lclosure_epilogue
+
+-#ifndef __SOFTFP__
++#if !defined(__SOFTFP__) && !defined(__ARM_EABI__)
+ .Lretfloat:
+ ldfs f0, [sp]
+ b .Lclosure_epilogue