patches/glibc/ports-2.10.1/570-arm-cirrus-ep93xx-maverick-crunch-fpu.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jan 17 23:06:02 2010 +0100 (2010-01-17)
changeset 1740 c57458bb354d
permissions -rw-r--r--
configure: do not require hg when configuring in an hg clone

When configuring in an hg clone, we need hg to compute the version string.
It can happen that users do not have Mercurial (eg. if they got a snapshot
rather that they did a full clone). In this case, we can still run, of
course, so simply fill the version string with a sufficiently explicit
value, that does not require hg. The date is a good candidate.
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