patches/glibc/ports-2.10.1/570-arm-cirrus-ep93xx-maverick-crunch-fpu.patch
author Arnaud Lacombe <lacombar@gmail.com>
Thu Aug 05 17:59:51 2010 +0200 (2010-08-05)
changeset 2069 366bd2b22675
permissions -rw-r--r--
complibs/mpc: fix MPC 0.8.1 build with MPFR 3.0.0

This is the change introduced by revision 734 of MPC repository.

Author: Paul Zimmermann <Paul.Zimmermann@loria.fr>
Revision log: [acos.c] fixed problem with GMP_RNDA (should be MPFR_RNDA, and code was wrong)

Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
yann@1625
     1
http://yann.poupet.free.fr/ep93xx/
yann@1625
     2
Add support for the Maverick Crunch FPU on Cirrus EP93XX processor series
yann@1625
     3
yann@1625
     4
diff -durN glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/arm/bits/endian.h glibc-2.10.1/glibc-ports-2.10.1/sysdeps/arm/bits/endian.h
yann@1625
     5
--- glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/arm/bits/endian.h	2009-05-16 10:36:20.000000000 +0200
yann@1625
     6
+++ glibc-2.10.1/glibc-ports-2.10.1/sysdeps/arm/bits/endian.h	2009-11-13 00:51:22.000000000 +0100
yann@1625
     7
@@ -12,7 +12,7 @@
yann@1625
     8
 /* FPA floating point units are always big-endian, irrespective of the
yann@1625
     9
    CPU endianness.  VFP floating point units use the same endianness
yann@1625
    10
    as the rest of the system.  */
yann@1625
    11
-#ifdef __VFP_FP__
yann@1625
    12
+#if defined __VFP_FP__ || defined __MAVERICK__
yann@1625
    13
 #define __FLOAT_WORD_ORDER __BYTE_ORDER
yann@1625
    14
 #else
yann@1625
    15
 #define __FLOAT_WORD_ORDER __BIG_ENDIAN
yann@1625
    16
diff -durN glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/arm/fpu/__longjmp.S glibc-2.10.1/glibc-ports-2.10.1/sysdeps/arm/fpu/__longjmp.S
yann@1625
    17
--- glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/arm/fpu/__longjmp.S	2009-05-16 10:36:20.000000000 +0200
yann@1625
    18
+++ glibc-2.10.1/glibc-ports-2.10.1/sysdeps/arm/fpu/__longjmp.S	2009-11-13 00:51:22.000000000 +0100
yann@1625
    19
@@ -30,7 +30,33 @@
yann@1625
    20
 	movs	r0, r1		/* get the return value in place */
yann@1625
    21
 	moveq	r0, #1		/* can't let setjmp() return zero! */
yann@1625
    22
 
yann@1625
    23
+#ifdef __MAVERICK__
yann@1625
    24
+	cfldrd	mvd4,  [ip], #8
yann@1625
    25
+	nop
yann@1625
    26
+	cfldrd	mvd5,  [ip], #8
yann@1625
    27
+	nop
yann@1625
    28
+	cfldrd	mvd6,  [ip], #8
yann@1625
    29
+	nop
yann@1625
    30
+	cfldrd	mvd7,  [ip], #8
yann@1625
    31
+	nop
yann@1625
    32
+	cfldrd	mvd8,  [ip], #8
yann@1625
    33
+	nop
yann@1625
    34
+	cfldrd	mvd9,  [ip], #8
yann@1625
    35
+	nop
yann@1625
    36
+	cfldrd	mvd10, [ip], #8
yann@1625
    37
+	nop
yann@1625
    38
+	cfldrd	mvd11, [ip], #8
yann@1625
    39
+	nop
yann@1625
    40
+	cfldrd	mvd12, [ip], #8
yann@1625
    41
+	nop
yann@1625
    42
+	cfldrd	mvd13, [ip], #8
yann@1625
    43
+	nop
yann@1625
    44
+	cfldrd	mvd14, [ip], #8
yann@1625
    45
+	nop
yann@1625
    46
+	cfldrd	mvd15, [ip], #8
yann@1625
    47
+#else
yann@1625
    48
 	lfmfd	f4, 4, [ip] !	/* load the floating point regs */
yann@1625
    49
+#endif
yann@1625
    50
 
yann@1625
    51
 	LOADREGS(ia, ip, {v1-v6, sl, fp, sp, pc})
yann@1625
    52
 END (__longjmp)
yann@1625
    53
diff -durN glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/arm/fpu/bits/fenv.h glibc-2.10.1/glibc-ports-2.10.1/sysdeps/arm/fpu/bits/fenv.h
yann@1625
    54
--- glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/arm/fpu/bits/fenv.h	2009-05-16 10:36:20.000000000 +0200
yann@1625
    55
+++ glibc-2.10.1/glibc-ports-2.10.1/sysdeps/arm/fpu/bits/fenv.h	2009-11-13 00:51:22.000000000 +0100
yann@1625
    56
@@ -20,6 +20,45 @@
yann@1625
    57
 # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
yann@1625
    58
 #endif
yann@1625
    59
 
yann@1625
    60
+#if defined(__MAVERICK__)
yann@1625
    61
+
yann@1625
    62
+/* Define bits representing exceptions in the FPU status word.  */
yann@1625
    63
+enum
yann@1625
    64
+  {
yann@1625
    65
+    FE_INVALID = 1,
yann@1625
    66
+#define FE_INVALID FE_INVALID
yann@1625
    67
+    FE_OVERFLOW = 4,
yann@1625
    68
+#define FE_OVERFLOW FE_OVERFLOW
yann@1625
    69
+    FE_UNDERFLOW = 8,
yann@1625
    70
+#define FE_UNDERFLOW FE_UNDERFLOW
yann@1625
    71
+    FE_INEXACT = 16,
yann@1625
    72
+#define FE_INEXACT FE_INEXACT
yann@1625
    73
+  };
yann@1625
    74
+
yann@1625
    75
+/* Amount to shift by to convert an exception to a mask bit.  */
yann@1625
    76
+#define FE_EXCEPT_SHIFT	5
yann@1625
    77
+
yann@1625
    78
+/* All supported exceptions.  */
yann@1625
    79
+#define FE_ALL_EXCEPT	\
yann@1625
    80
+	(FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW | FE_INEXACT)
yann@1625
    81
+
yann@1625
    82
+/* IEEE rounding modes.  */
yann@1625
    83
+enum
yann@1625
    84
+  {
yann@1625
    85
+    FE_TONEAREST = 0,
yann@1625
    86
+#define FE_TONEAREST    FE_TONEAREST
yann@1625
    87
+    FE_TOWARDZERO = 0x400,
yann@1625
    88
+#define FE_TOWARDZERO   FE_TOWARDZERO
yann@1625
    89
+    FE_DOWNWARD = 0x800,
yann@1625
    90
+#define FE_DOWNWARD     FE_DOWNWARD
yann@1625
    91
+    FE_UPWARD = 0xc00,
yann@1625
    92
+#define FE_UPWARD       FE_UPWARD
yann@1625
    93
+  };
yann@1625
    94
+
yann@1625
    95
+#define FE_ROUND_MASK (FE_UPWARD)
yann@1625
    96
+
yann@1625
    97
+#else /* FPA */
yann@1625
    98
+
yann@1625
    99
 /* Define bits representing exceptions in the FPU status word.  */
yann@1625
   100
 enum
yann@1625
   101
   {
yann@1625
   102
@@ -44,6 +83,8 @@
yann@1625
   103
    modes exist, but you have to encode them in the actual instruction.  */
yann@1625
   104
 #define FE_TONEAREST	0
yann@1625
   105
 
yann@1625
   106
+#endif
yann@1625
   107
+
yann@1625
   108
 /* Type representing exception flags. */
yann@1625
   109
 typedef unsigned long int fexcept_t;
yann@1625
   110
 
yann@1625
   111
diff -durN glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/arm/fpu/bits/setjmp.h glibc-2.10.1/glibc-ports-2.10.1/sysdeps/arm/fpu/bits/setjmp.h
yann@1625
   112
--- glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/arm/fpu/bits/setjmp.h	2009-05-16 10:36:20.000000000 +0200
yann@1625
   113
+++ glibc-2.10.1/glibc-ports-2.10.1/sysdeps/arm/fpu/bits/setjmp.h	2009-11-13 00:51:22.000000000 +0100
yann@1625
   114
@@ -28,7 +28,11 @@
yann@1625
   115
 #ifndef _ASM
yann@1625
   116
 /* Jump buffer contains v1-v6, sl, fp, sp and pc.  Other registers are not
yann@1625
   117
    saved.  */
yann@1625
   118
+#ifdef __MAVERICK__
yann@1625
   119
+typedef int __jmp_buf[34];
yann@1625
   120
+#else
yann@1625
   121
 typedef int __jmp_buf[22];
yann@1625
   122
 #endif
yann@1625
   123
+#endif
yann@1625
   124
 
yann@1625
   125
 #endif
yann@1625
   126
diff -durN glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/arm/fpu/fegetround.c glibc-2.10.1/glibc-ports-2.10.1/sysdeps/arm/fpu/fegetround.c
yann@1625
   127
--- glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/arm/fpu/fegetround.c	2009-05-16 10:36:20.000000000 +0200
yann@1625
   128
+++ glibc-2.10.1/glibc-ports-2.10.1/sysdeps/arm/fpu/fegetround.c	2009-11-13 00:51:22.000000000 +0100
yann@1625
   129
@@ -18,9 +18,21 @@
yann@1625
   130
    02111-1307 USA.  */
yann@1625
   131
 
yann@1625
   132
 #include <fenv.h>
yann@1625
   133
+#include <fpu_control.h>
yann@1625
   134
 
yann@1625
   135
 int
yann@1625
   136
 fegetround (void)
yann@1625
   137
 {
yann@1625
   138
+#if defined(__MAVERICK__)
yann@1625
   139
+
yann@1625
   140
+  unsigned long temp;
yann@1625
   141
+
yann@1625
   142
+  _FPU_GETCW (temp);
yann@1625
   143
+  return temp & FE_ROUND_MASK;
yann@1625
   144
+
yann@1625
   145
+#else /* FPA */
yann@1625
   146
+
yann@1625
   147
   return FE_TONEAREST;		/* Easy. :-) */
yann@1625
   148
+
yann@1625
   149
+#endif
yann@1625
   150
 }
yann@1625
   151
diff -durN glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/arm/fpu/fesetround.c glibc-2.10.1/glibc-ports-2.10.1/sysdeps/arm/fpu/fesetround.c
yann@1625
   152
--- glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/arm/fpu/fesetround.c	2009-05-16 10:36:20.000000000 +0200
yann@1625
   153
+++ glibc-2.10.1/glibc-ports-2.10.1/sysdeps/arm/fpu/fesetround.c	2009-11-13 00:51:22.000000000 +0100
yann@1625
   154
@@ -18,12 +18,28 @@
yann@1625
   155
    02111-1307 USA.  */
yann@1625
   156
 
yann@1625
   157
 #include <fenv.h>
yann@1625
   158
+#include <fpu_control.h>
yann@1625
   159
 
yann@1625
   160
 int
yann@1625
   161
 fesetround (int round)
yann@1625
   162
 {
yann@1625
   163
+#if defined(__MAVERICK__)
yann@1625
   164
+  unsigned long temp;
yann@1625
   165
+
yann@1625
   166
+  if (round & ~FE_ROUND_MASK)
yann@1625
   167
+    return 1;
yann@1625
   168
+
yann@1625
   169
+  _FPU_GETCW (temp);
yann@1625
   170
+  temp = (temp & ~FE_ROUND_MASK) | round;
yann@1625
   171
+  _FPU_SETCW (temp);
yann@1625
   172
+  return 0;
yann@1625
   173
+
yann@1625
   174
+#else /* FPA */
yann@1625
   175
+
yann@1625
   176
   /* We only support FE_TONEAREST, so there is no need for any work.  */
yann@1625
   177
   return (round == FE_TONEAREST)?0:1;
yann@1625
   178
+
yann@1625
   179
+#endif
yann@1625
   180
 }
yann@1625
   181
 
yann@1625
   182
 libm_hidden_def (fesetround)
yann@1625
   183
diff -durN glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/arm/fpu/fpu_control.h glibc-2.10.1/glibc-ports-2.10.1/sysdeps/arm/fpu/fpu_control.h
yann@1625
   184
--- glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/arm/fpu/fpu_control.h	2009-05-16 10:36:20.000000000 +0200
yann@1625
   185
+++ glibc-2.10.1/glibc-ports-2.10.1/sysdeps/arm/fpu/fpu_control.h	2009-11-13 00:51:22.000000000 +0100
yann@1625
   186
@@ -1,5 +1,6 @@
yann@1625
   187
 /* FPU control word definitions.  ARM version.
yann@1625
   188
-   Copyright (C) 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
yann@1625
   189
+   Copyright (C) 1996, 1997, 1998, 2000, 2005
yann@1625
   190
+   Free Software Foundation, Inc.
yann@1625
   191
    This file is part of the GNU C Library.
yann@1625
   192
 
yann@1625
   193
    The GNU C Library is free software; you can redistribute it and/or
yann@1625
   194
@@ -20,6 +21,79 @@
yann@1625
   195
 #ifndef _FPU_CONTROL_H
yann@1625
   196
 #define _FPU_CONTROL_H
yann@1625
   197
 
yann@1625
   198
+#if defined(__MAVERICK__)
yann@1625
   199
+
yann@1625
   200
+/* DSPSC register: (from EP9312 User's Guide)
yann@1625
   201
+ *
yann@1625
   202
+ * bits 31..29	- DAID
yann@1625
   203
+ * bits 28..26	- HVID
yann@1625
   204
+ * bits 25..24	- RSVD
yann@1625
   205
+ * bit  23	- ISAT
yann@1625
   206
+ * bit  22	- UI
yann@1625
   207
+ * bit  21	- INT
yann@1625
   208
+ * bit  20	- AEXC
yann@1625
   209
+ * bits 19..18	- SAT
yann@1625
   210
+ * bits 17..16	- FCC
yann@1625
   211
+ * bit  15	- V
yann@1625
   212
+ * bit  14	- FWDEN
yann@1625
   213
+ * bit  13	- Invalid
yann@1625
   214
+ * bit	12	- Denorm
yann@1625
   215
+ * bits 11..10	- RM
yann@1625
   216
+ * bits 9..5	- IXE, UFE, OFE, RSVD, IOE
yann@1625
   217
+ * bits 4..0	- IX, UF, OF, RSVD, IO
yann@1625
   218
+ */
yann@1625
   219
+
yann@1625
   220
+/* masking of interrupts */
yann@1625
   221
+#define _FPU_MASK_IM	(1 << 5)	/* invalid operation */
yann@1625
   222
+#define _FPU_MASK_ZM	0		/* divide by zero */
yann@1625
   223
+#define _FPU_MASK_OM	(1 << 7)	/* overflow */
yann@1625
   224
+#define _FPU_MASK_UM	(1 << 8)	/* underflow */
yann@1625
   225
+#define _FPU_MASK_PM	(1 << 9)	/* inexact */
yann@1625
   226
+#define _FPU_MASK_DM	0		/* denormalized operation */
yann@1625
   227
+
yann@1625
   228
+#define _FPU_RESERVED	0xfffff000	/* These bits are reserved.  */
yann@1625
   229
+
yann@1625
   230
+#define _FPU_DEFAULT	0x00b00000	/* Default value.  */
yann@1625
   231
+#define _FPU_IEEE	0x00b003a0	/* Default + exceptions enabled. */
yann@1625
   232
+
yann@1625
   233
+/* Type of the control word.  */
yann@1625
   234
+typedef unsigned int fpu_control_t;
yann@1625
   235
+
yann@1625
   236
+/* Macros for accessing the hardware control word.  */
yann@1625
   237
+#define _FPU_GETCW(cw) ({			\
yann@1625
   238
+	register int __t1, __t2;		\
yann@1625
   239
+						\
yann@1625
   240
+	__asm__ volatile (			\
yann@1625
   241
+	"cfmvr64l	%1, mvdx0\n\t"		\
yann@1625
   242
+	"cfmvr64h	%2, mvdx0\n\t"		\
yann@1625
   243
+	"cfmv32sc	mvdx0, dspsc\n\t"	\
yann@1625
   244
+	"cfmvr64l	%0, mvdx0\n\t"		\
yann@1625
   245
+	"cfmv64lr	mvdx0, %1\n\t"		\
yann@1625
   246
+	"cfmv64hr	mvdx0, %2"		\
yann@1625
   247
+	: "=r" (cw), "=r" (__t1), "=r" (__t2)	\
yann@1625
   248
+	);					\
yann@1625
   249
+})
yann@1625
   250
+
yann@1625
   251
+#define _FPU_SETCW(cw) ({			\
yann@1625
   252
+	register int __t0, __t1, __t2;		\
yann@1625
   253
+						\
yann@1625
   254
+	__asm__ volatile (			\
yann@1625
   255
+	"cfmvr64l	%1, mvdx0\n\t"		\
yann@1625
   256
+	"cfmvr64h	%2, mvdx0\n\t"		\
yann@1625
   257
+	"cfmv64lr	mvdx0, %0\n\t"		\
yann@1625
   258
+	"cfmvsc32	dspsc, mvdx0\n\t"	\
yann@1625
   259
+	"cfmv64lr	mvdx0, %1\n\t"		\
yann@1625
   260
+	"cfmv64hr	mvdx0, %2"		\
yann@1625
   261
+	: "=r" (__t0), "=r" (__t1), "=r" (__t2)	\
yann@1625
   262
+	: "0" (cw)				\
yann@1625
   263
+	);					\
yann@1625
   264
+})
yann@1625
   265
+
yann@1625
   266
+/* Default control word set at startup.  */
yann@1625
   267
+extern fpu_control_t __fpu_control;
yann@1625
   268
+
yann@1625
   269
+#else /* FPA */
yann@1625
   270
+
yann@1625
   271
 /* We have a slight terminology confusion here.  On the ARM, the register
yann@1625
   272
  * we're interested in is actually the FPU status word - the FPU control
yann@1625
   273
  * word is something different (which is implementation-defined and only
yann@1625
   274
@@ -99,4 +173,6 @@
yann@1625
   275
 /* Default control word set at startup.  */
yann@1625
   276
 extern fpu_control_t __fpu_control;
yann@1625
   277
 
yann@1625
   278
+#endif
yann@1625
   279
+
yann@1625
   280
 #endif /* _FPU_CONTROL_H */
yann@1625
   281
diff -durN glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/arm/fpu/jmpbuf-offsets.h glibc-2.10.1/glibc-ports-2.10.1/sysdeps/arm/fpu/jmpbuf-offsets.h
yann@1625
   282
--- glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/arm/fpu/jmpbuf-offsets.h	2009-05-16 10:36:20.000000000 +0200
yann@1625
   283
+++ glibc-2.10.1/glibc-ports-2.10.1/sysdeps/arm/fpu/jmpbuf-offsets.h	2009-11-13 00:51:22.000000000 +0100
yann@1625
   284
@@ -17,4 +17,8 @@
yann@1625
   285
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
yann@1625
   286
    02111-1307 USA.  */
yann@1625
   287
 
yann@1625
   288
+#ifdef __MAVERICK__
yann@1625
   289
+#define __JMP_BUF_SP		32
yann@1625
   290
+#else
yann@1625
   291
 #define __JMP_BUF_SP		20
yann@1625
   292
+#endif
yann@1625
   293
diff -durN glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/arm/fpu/setjmp.S glibc-2.10.1/glibc-ports-2.10.1/sysdeps/arm/fpu/setjmp.S
yann@1625
   294
--- glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/arm/fpu/setjmp.S	2009-05-16 10:36:20.000000000 +0200
yann@1625
   295
+++ glibc-2.10.1/glibc-ports-2.10.1/sysdeps/arm/fpu/setjmp.S	2009-11-13 00:51:22.000000000 +0100
yann@1625
   296
@@ -24,11 +24,41 @@
yann@1625
   297
 
yann@1625
   298
 ENTRY (__sigsetjmp)
yann@1625
   299
 	/* Save registers */
yann@1625
   300
+#ifdef __MAVERICK__
yann@1625
   301
+	cfstrd	mvd4,  [r0], #8
yann@1625
   302
+	nop
yann@1625
   303
+	cfstrd	mvd5,  [r0], #8
yann@1625
   304
+	nop
yann@1625
   305
+	cfstrd	mvd6,  [r0], #8
yann@1625
   306
+	nop
yann@1625
   307
+	cfstrd	mvd7,  [r0], #8
yann@1625
   308
+	nop
yann@1625
   309
+	cfstrd	mvd8,  [r0], #8
yann@1625
   310
+	nop
yann@1625
   311
+	cfstrd	mvd9,  [r0], #8
yann@1625
   312
+	nop
yann@1625
   313
+	cfstrd	mvd10, [r0], #8
yann@1625
   314
+	nop
yann@1625
   315
+	cfstrd	mvd11, [r0], #8
yann@1625
   316
+	nop
yann@1625
   317
+	cfstrd	mvd12, [r0], #8
yann@1625
   318
+	nop
yann@1625
   319
+	cfstrd	mvd13, [r0], #8
yann@1625
   320
+	nop
yann@1625
   321
+	cfstrd	mvd14, [r0], #8
yann@1625
   322
+	nop
yann@1625
   323
+	cfstrd	mvd15, [r0], #8
yann@1625
   324
+#else
yann@1625
   325
 	sfmea	f4, 4, [r0]!
yann@1625
   326
+#endif
yann@1625
   327
 	stmia	r0, {v1-v6, sl, fp, sp, lr}
yann@1625
   328
 
yann@1625
   329
 	/* Restore pointer to jmp_buf */
yann@1625
   330
+#ifdef __MAVERICK__
yann@1625
   331
+	sub	r0, r0, #96
yann@1625
   332
+#else
yann@1625
   333
 	sub	r0, r0, #48
yann@1625
   334
+#endif
yann@1625
   335
 
yann@1625
   336
 	/* Make a tail call to __sigjmp_save; it takes the same args.  */
yann@1625
   337
 	B	PLTJMP(C_SYMBOL_NAME(__sigjmp_save))
yann@1625
   338
diff -durN glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/arm/gccframe.h glibc-2.10.1/glibc-ports-2.10.1/sysdeps/arm/gccframe.h
yann@1625
   339
--- glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/arm/gccframe.h	2009-05-16 10:36:20.000000000 +0200
yann@1625
   340
+++ glibc-2.10.1/glibc-ports-2.10.1/sysdeps/arm/gccframe.h	2009-11-13 00:51:22.000000000 +0100
yann@1625
   341
@@ -17,6 +17,10 @@
yann@1625
   342
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
yann@1625
   343
    02111-1307 USA.  */
yann@1625
   344
 
yann@1625
   345
+#ifdef __MAVERICK__
yann@1625
   346
+#define FIRST_PSEUDO_REGISTER 43
yann@1625
   347
+#else
yann@1625
   348
 #define FIRST_PSEUDO_REGISTER 27
yann@1625
   349
+#endif
yann@1625
   350
 
yann@1625
   351
 #include <sysdeps/generic/gccframe.h>
yann@1625
   352
diff -durN glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/arm/gmp-mparam.h glibc-2.10.1/glibc-ports-2.10.1/sysdeps/arm/gmp-mparam.h
yann@1625
   353
--- glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/arm/gmp-mparam.h	2009-05-16 10:36:20.000000000 +0200
yann@1625
   354
+++ glibc-2.10.1/glibc-ports-2.10.1/sysdeps/arm/gmp-mparam.h	2009-11-13 00:51:22.000000000 +0100
yann@1625
   355
@@ -29,7 +29,7 @@
yann@1625
   356
 #if defined(__ARMEB__)
yann@1625
   357
 # define IEEE_DOUBLE_MIXED_ENDIAN 0
yann@1625
   358
 # define IEEE_DOUBLE_BIG_ENDIAN 1
yann@1625
   359
-#elif defined(__VFP_FP__)
yann@1625
   360
+#elif defined(__VFP_FP__) || defined(__MAVERICK__)
yann@1625
   361
 # define IEEE_DOUBLE_MIXED_ENDIAN 0
yann@1625
   362
 # define IEEE_DOUBLE_BIG_ENDIAN 0
yann@1625
   363
 #else
yann@1625
   364
diff -durN glibc-2.10.1.orig/ports/sysdeps/arm/bits/endian.h glibc-2.10.1/ports/sysdeps/arm/bits/endian.h
yann@1625
   365
diff -durN glibc-2.10.1.orig/ports/sysdeps/arm/fpu/__longjmp.S glibc-2.10.1/ports/sysdeps/arm/fpu/__longjmp.S
yann@1625
   366
diff -durN glibc-2.10.1.orig/ports/sysdeps/arm/fpu/bits/fenv.h glibc-2.10.1/ports/sysdeps/arm/fpu/bits/fenv.h
yann@1625
   367
diff -durN glibc-2.10.1.orig/ports/sysdeps/arm/fpu/bits/setjmp.h glibc-2.10.1/ports/sysdeps/arm/fpu/bits/setjmp.h
yann@1625
   368
diff -durN glibc-2.10.1.orig/ports/sysdeps/arm/fpu/fegetround.c glibc-2.10.1/ports/sysdeps/arm/fpu/fegetround.c
yann@1625
   369
diff -durN glibc-2.10.1.orig/ports/sysdeps/arm/fpu/fesetround.c glibc-2.10.1/ports/sysdeps/arm/fpu/fesetround.c
yann@1625
   370
diff -durN glibc-2.10.1.orig/ports/sysdeps/arm/fpu/fpu_control.h glibc-2.10.1/ports/sysdeps/arm/fpu/fpu_control.h
yann@1625
   371
diff -durN glibc-2.10.1.orig/ports/sysdeps/arm/fpu/jmpbuf-offsets.h glibc-2.10.1/ports/sysdeps/arm/fpu/jmpbuf-offsets.h
yann@1625
   372
diff -durN glibc-2.10.1.orig/ports/sysdeps/arm/fpu/setjmp.S glibc-2.10.1/ports/sysdeps/arm/fpu/setjmp.S
yann@1625
   373
diff -durN glibc-2.10.1.orig/ports/sysdeps/arm/gccframe.h glibc-2.10.1/ports/sysdeps/arm/gccframe.h
yann@1625
   374
diff -durN glibc-2.10.1.orig/ports/sysdeps/arm/gmp-mparam.h glibc-2.10.1/ports/sysdeps/arm/gmp-mparam.h