diff options
| author | Szabolcs Nagy <nsz@port70.net> | 2016-01-27 00:54:25 +0000 | 
|---|---|---|
| committer | Rich Felker <dalias@aerifal.cx> | 2016-01-26 22:31:21 -0500 | 
| commit | 9a3b8f97a160ce292dcf0ef2a9358fa0e11e9ee3 (patch) | |
| tree | e48a566d97b06975efc91d8d74d76f2db446f1a8 | |
| parent | 22f84829afa06bba9d220bd0f7b1bce912987297 (diff) | |
| download | musl-9a3b8f97a160ce292dcf0ef2a9358fa0e11e9ee3.tar.gz | |
fix siginfo_t for mips
si_errno and si_code are swapped in mips siginfo_t compared to other
archs and some si_code values are different.  This fix is required
for POSIX timers to work.
based on patch by Dmitry Ivanov.
| -rw-r--r-- | arch/mips/bits/signal.h | 9 | ||||
| -rw-r--r-- | include/signal.h | 4 | 
2 files changed, 13 insertions, 0 deletions
| diff --git a/arch/mips/bits/signal.h b/arch/mips/bits/signal.h index 818e0a7b..889f77e8 100644 --- a/arch/mips/bits/signal.h +++ b/arch/mips/bits/signal.h @@ -73,6 +73,15 @@ typedef struct __ucontext {  #define SIG_UNBLOCK   2  #define SIG_SETMASK   3 +#undef SI_ASYNCIO +#undef SI_MESGQ +#undef SI_TIMER +#define SI_ASYNCIO (-2) +#define SI_MESGQ (-4) +#define SI_TIMER (-3) + +#define __SI_SWAP_ERRNO_CODE +  #endif  #define SIGHUP    1 diff --git a/include/signal.h b/include/signal.h index 8df725d9..c6323c61 100644 --- a/include/signal.h +++ b/include/signal.h @@ -94,7 +94,11 @@ union sigval {  };  typedef struct { +#ifdef __SI_SWAP_ERRNO_CODE +	int si_signo, si_code, si_errno; +#else  	int si_signo, si_errno, si_code; +#endif  	union {  		char __pad[128 - 2*sizeof(int) - sizeof(long)];  		struct { | 
