MIPS support to sigsuspend and sigwait routines
Change-Id: I870e798ed7eac5a8c74e5784a670f3a4f24331a9
diff --git a/libc/unistd/sigwait.c b/libc/unistd/sigwait.c
index c9c2a54..1e90c41 100644
--- a/libc/unistd/sigwait.c
+++ b/libc/unistd/sigwait.c
@@ -47,6 +47,14 @@
int sigwait(const sigset_t *set, int *sig)
{
int ret;
+#ifdef __mips__
+ /* use a union to get rid of aliasing warnings. On MIPS sigset_t is 128 bits */
+ union {
+ sigset_t kernel_sigset;
+ sigset_t dummy_sigset;
+ } u;
+ u.dummy_sigset = *set;
+#else
/* use a union to get rid of aliasing warnings */
union {
unsigned long kernel_sigset[2];
@@ -55,6 +63,7 @@
u.kernel_sigset[0] = *set;
u.kernel_sigset[1] = 0; /* no real-time signals supported ? */
+#endif
for (;;)
{
/* __rt_sigtimedwait can return EAGAIN or EINTR, we need to loop