diff -up mozilla/nsprpub/pr/include/md/_linux.h.orig mozilla/nsprpub/pr/include/md/_linux.h --- mozilla/nsprpub/pr/include/md/_linux.h.orig 2008-04-27 12:33:03.000000000 -0400 +++ mozilla/nsprpub/pr/include/md/_linux.h 2008-07-02 05:45:37.000000000 -0400 @@ -412,7 +412,7 @@ extern void _MD_CleanupBeforeExit(void); #error "Linux/MIPS pre-glibc2 not supported yet" #endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */ -#elif defined(__arm__) +#elif defined(__arm__) && !defined(__ARM_EABI__) /* ARM/Linux */ #if defined(__GLIBC__) && __GLIBC__ >= 2 #define _MD_GET_SP(_t) (_t)->md.context[0].__jmpbuf[20] @@ -424,6 +424,18 @@ extern void _MD_CleanupBeforeExit(void); #error "ARM/Linux pre-glibc2 not supported yet" #endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */ +#elif defined(__arm__) && defined(__ARM_EABI__) +/* ARM/Linux */ +#if defined(__GLIBC__) && __GLIBC__ >= 2 +#define _MD_GET_SP(_t) (_t)->md.context[0].__jmpbuf[8] +#define _MD_SET_FP(_t, val) ((_t)->md.context[0].__jmpbuf[7] = (val)) +#define _MD_GET_SP_PTR(_t) &(_MD_GET_SP(_t)) +#define _MD_GET_FP_PTR(_t) (&(_t)->md.context[0].__jmpbuf[7]) +#define _MD_SP_TYPE __ptr_t +#else +#error "ARM/Linux pre-glibc2 not supported yet" +#endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */ + #else #error "Unknown CPU architecture"