POSIX also says that ucontext_t's uc_sigmask has type sigset_t.
MIPS64 strace needs this.
The #define is to keep chromium off our lawn; otherwise it tries to redefine
all this stuff itself. We should probably clean that up and remove the #define.
(cherry picked from commit
26a8eb50a84e131d34d10d5d167d67e9995399bd)
Bug:
18172268
Change-Id: I49d7d09dabfc6c6926a8e1f4b235d041e2f2fc4d
# include <linux/signal.h>
#endif
+#include <sys/ucontext.h>
+#define __BIONIC_HAVE_UCONTEXT_T
+
__BEGIN_DECLS
typedef int sig_atomic_t;
struct ucontext* uc_link;
stack_t uc_stack;
mcontext_t uc_mcontext;
+ sigset_t uc_sigmask;
// Android has a wrong (smaller) sigset_t on ARM.
- union {
- sigset_t bionic;
- uint32_t kernel[2];
- } uc_sigmask;
+ uint32_t __padding_rt_sigset;
// The kernel adds extra padding after uc_sigmask to match glibc sigset_t on ARM.
char __padding[120];
unsigned long uc_regspace[128] __attribute__((__aligned__(8)));
struct ucontext* uc_link;
stack_t uc_stack;
mcontext_t uc_mcontext;
+ sigset_t uc_sigmask;
// Android has a wrong (smaller) sigset_t on x86.
- union {
- sigset_t bionic;
- uint32_t kernel[2];
- } uc_sigmask;
+ uint32_t __padding_rt_sigset;
struct _libc_fpstate __fpregs_mem;
} ucontext_t;