| Index: src/platform-linux.cc
|
| diff --git a/src/platform-linux.cc b/src/platform-linux.cc
|
| index bed069dfb79283280a9e50f4c5e247b258d5ca1e..5c05a3ad662af0d4db1ed0c8f2c4e2d4881e2a88 100644
|
| --- a/src/platform-linux.cc
|
| +++ b/src/platform-linux.cc
|
| @@ -964,6 +964,46 @@ typedef struct ucontext {
|
| __sigset_t uc_sigmask;
|
| } ucontext_t;
|
|
|
| +#elif !defined(__GLIBC__) && defined(__i386__)
|
| +// x86 version for Android.
|
| +struct _libc_fpreg {
|
| + uint16_t significand[4];
|
| + uint16_t exponent;
|
| +};
|
| +
|
| +struct _libc_fpstate {
|
| + uint64_t cw;
|
| + uint64_t sw;
|
| + uint64_t tag;
|
| + uint64_t ipoff;
|
| + uint64_t cssel;
|
| + uint64_t dataoff;
|
| + uint64_t datasel;
|
| + struct _libc_fpreg _st[8];
|
| + uint64_t status;
|
| +};
|
| +
|
| +typedef struct _libc_fpstate *fpregset_t;
|
| +
|
| +typedef struct mcontext {
|
| + int32_t gregs[19];
|
| + fpregset_t fpregs;
|
| + int64_t oldmask;
|
| + int64_t cr2;
|
| +} mcontext_t;
|
| +
|
| +typedef uint64_t __sigset_t;
|
| +
|
| +typedef struct ucontext {
|
| + uint64_t uc_flags;
|
| + struct ucontext *uc_link;
|
| + stack_t uc_stack;
|
| + mcontext_t uc_mcontext;
|
| + __sigset_t uc_sigmask;
|
| + struct _libc_fpstate __fpregs_mem;
|
| +} ucontext_t;
|
| +
|
| +enum { REG_EBP = 6, REG_ESP = 7, REG_EIP = 14 };
|
| #endif
|
|
|
|
|
|
|