patches/glibc/ports-2.13/570-arm-cirrus-ep93xx-maverick-crunch-fpu.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Aug 02 18:28:10 2011 +0200 (2011-08-02)
changeset 2590 b64cfb67944e
permissions -rw-r--r--
scripts/functions: svn retrieval first tries the mirror for tarballs

The svn download helper looks for the local tarballs dir to see if it
can find a pre-downloaded tarball, and if it does not find it, does
the actual fetch to upstream via svn.

In the process, it does not even try to get a tarball from the local
mirror, which can be useful if the mirror has been pre-populated
manually (or with a previously downloaded tree).

Fake a tarball get with the standard tarball-download helper, but
without specifying any upstream URL, which makes the helper directly
try the LAN mirror.

Of course, if no mirror is specified, no URL wil be available, and
the standard svn retrieval will kick in.

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