summaryrefslogtreecommitdiffstats
path: root/libc/include
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2014-09-12 20:04:40 -0700
committerElliott Hughes <enh@google.com>2014-10-29 11:55:02 -0700
commitab4d5cf24220f3b5d8f53b2b3bd635f23dcc9bc5 (patch)
tree85e4c06591a3979cc8deac040e43294f65b0207a /libc/include
parenteedbf70e8eae18ab28a36017632b80e23c398e53 (diff)
downloadbionic-ab4d5cf24220f3b5d8f53b2b3bd635f23dcc9bc5.zip
bionic-ab4d5cf24220f3b5d8f53b2b3bd635f23dcc9bc5.tar.gz
bionic-ab4d5cf24220f3b5d8f53b2b3bd635f23dcc9bc5.tar.bz2
POSIX says <signal.h> gets you ucontext_t.
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
Diffstat (limited to 'libc/include')
-rw-r--r--libc/include/signal.h3
-rw-r--r--libc/include/sys/ucontext.h12
2 files changed, 7 insertions, 8 deletions
diff --git a/libc/include/signal.h b/libc/include/signal.h
index f1849c5..e23e65b 100644
--- a/libc/include/signal.h
+++ b/libc/include/signal.h
@@ -48,6 +48,9 @@
# include <linux/signal.h>
#endif
+#include <sys/ucontext.h>
+#define __BIONIC_HAVE_UCONTEXT_T
+
__BEGIN_DECLS
typedef int sig_atomic_t;
diff --git a/libc/include/sys/ucontext.h b/libc/include/sys/ucontext.h
index f62380d..b8d4d58 100644
--- a/libc/include/sys/ucontext.h
+++ b/libc/include/sys/ucontext.h
@@ -68,11 +68,9 @@ typedef struct ucontext {
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)));
@@ -152,11 +150,9 @@ typedef struct ucontext {
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;