diff options
author | Elliott Hughes <enh@google.com> | 2014-09-12 20:04:40 -0700 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2014-10-29 11:55:02 -0700 |
commit | ab4d5cf24220f3b5d8f53b2b3bd635f23dcc9bc5 (patch) | |
tree | 85e4c06591a3979cc8deac040e43294f65b0207a /libc/include | |
parent | eedbf70e8eae18ab28a36017632b80e23c398e53 (diff) | |
download | bionic-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.h | 3 | ||||
-rw-r--r-- | libc/include/sys/ucontext.h | 12 |
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; |