1 diff -up mozilla/nsprpub/pr/include/md/_linux.h.orig mozilla/nsprpub/pr/include/md/_linux.h
2 --- mozilla/nsprpub/pr/include/md/_linux.h.orig 2007-11-28 14:16:03.000000000 -0500
3 +++ mozilla/nsprpub/pr/include/md/_linux.h 2007-11-28 14:12:09.000000000 -0500
4 @@ -346,8 +346,8 @@ extern void _MD_CleanupBeforeExit(void);
5 #error "Linux/MIPS pre-glibc2 not supported yet"
6 #endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */
8 -#elif defined(__arm__)
10 +#elif defined(__arm__) && !defined(__ARM_EABI__)
11 +/* ARM/Linux (old-ABI) */
12 #if defined(__GLIBC__) && __GLIBC__ >= 2
13 #define _MD_GET_SP(_t) (_t)->md.context[0].__jmpbuf[20]
14 #define _MD_SET_FP(_t, val) ((_t)->md.context[0].__jmpbuf[19] = (val))
15 @@ -358,6 +358,18 @@ extern void _MD_CleanupBeforeExit(void);
16 #error "ARM/Linux pre-glibc2 not supported yet"
17 #endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */
19 +#elif defined(__arm__) && defined(__ARM_EABI__)
20 +/* ARM/Linux (EABI) */
21 +#if defined(__GLIBC__) && __GLIBC__ >= 2
22 +#define _MD_GET_SP(_t) (_t)->md.context[0].__jmpbuf[8]
23 +#define _MD_SET_FP(_t, val) ((_t)->md.context[0].__jmpbuf[7] = (val))
24 +#define _MD_GET_SP_PTR(_t) &(_MD_GET_SP(_t))
25 +#define _MD_GET_FP_PTR(_t) (&(_t)->md.context[0].__jmpbuf[7])
26 +#define _MD_SP_TYPE __ptr_t
28 +#error "ARM/Linux pre-glibc2 not supported yet"
29 +#endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */
33 #error "Unknown CPU architecture"