| mips: rename siginfo _timer members |
| |
| Backport an upstream patch to fix a compilation problem of strace-4.9+ |
| on MIPS platforms with uClibc. |
| |
| Upstream commit: |
| http://git.uclibc.org/uClibc/commit/?id=a1b88fe87a9d2be5696247d266f5c4fd20f000bb |
| |
| Fixes: |
| http://autobuild.buildroot.net/results/e8f/e8f4965b27c9dcc58d6ec77cdc48b83c218c5bec/ |
| |
| Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> |
| |
| From a1b88fe87a9d2be5696247d266f5c4fd20f000bb Mon Sep 17 00:00:00 2001 |
| From: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> |
| Date: Wed, 3 Dec 2014 17:43:25 +0100 |
| Subject: [PATCH] mips: rename siginfo _timer members |
| |
| Rename _timer[12] to si_tid and si_overrun to fix compilation of |
| strace-4.9+ |
| |
| Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> |
| --- |
| libc/sysdeps/linux/mips/bits/siginfo.h | 51 ++++++++++++++++++++----------- |
| 1 files changed, 33 insertions(+), 18 deletions(-) |
| |
| diff --git a/libc/sysdeps/linux/mips/bits/siginfo.h b/libc/sysdeps/linux/mips/bits/siginfo.h |
| index a6e4135..5199d4d 100644 |
| --- a/libc/sysdeps/linux/mips/bits/siginfo.h |
| +++ b/libc/sysdeps/linux/mips/bits/siginfo.h |
| @@ -69,6 +69,22 @@ typedef struct siginfo |
| __uid_t si_uid; /* Real user ID of sending process. */ |
| } _kill; |
| |
| + /* POSIX.1b timers. */ |
| + struct |
| + { |
| + int si_tid; /* Timer ID. */ |
| + int si_overrun; /* Overrun count. */ |
| + sigval_t si_sigval; /* Signal value. */ |
| + } _timer; |
| + |
| + /* POSIX.1b signals. */ |
| + struct |
| + { |
| + __pid_t si_pid; /* Sending process ID. */ |
| + __uid_t si_uid; /* Real user ID of sending process. */ |
| + sigval_t si_sigval; /* Signal value. */ |
| + } _rt; |
| + |
| /* SIGCHLD. */ |
| struct |
| { |
| @@ -83,29 +99,15 @@ typedef struct siginfo |
| struct |
| { |
| void *si_addr; /* Faulting insn/memory ref. */ |
| + short int si_addr_lsb; /* Valid LSB of the reported address. */ |
| } _sigfault; |
| |
| /* SIGPOLL. */ |
| struct |
| { |
| - int si_band; /* Band event for SIGPOLL. */ |
| + long int si_band; /* Band event for SIGPOLL. */ |
| int si_fd; |
| } _sigpoll; |
| - |
| - /* POSIX.1b timers. */ |
| - struct |
| - { |
| - unsigned int _timer1; |
| - unsigned int _timer2; |
| - } _timer; |
| - |
| - /* POSIX.1b signals. */ |
| - struct |
| - { |
| - __pid_t si_pid; /* Sending process ID. */ |
| - __uid_t si_uid; /* Real user ID of sending process. */ |
| - sigval_t si_sigval; /* Signal value. */ |
| - } _rt; |
| } _sifields; |
| } siginfo_t; |
| |
| @@ -113,6 +115,8 @@ typedef struct siginfo |
| /* X/Open requires some more fields with fixed names. */ |
| # define si_pid _sifields._kill.si_pid |
| # define si_uid _sifields._kill.si_uid |
| +# define si_timerid _sifields._timer.si_tid |
| +# define si_overrun _sifields._timer.si_overrun |
| # define si_status _sifields._sigchld.si_status |
| # define si_utime _sifields._sigchld.si_utime |
| # define si_stime _sifields._sigchld.si_stime |
| @@ -120,6 +124,7 @@ typedef struct siginfo |
| # define si_int _sifields._rt.si_sigval.sival_int |
| # define si_ptr _sifields._rt.si_sigval.sival_ptr |
| # define si_addr _sifields._sigfault.si_addr |
| +# define si_addr_lsb _sifields._sigfault.si_addr_lsb |
| # define si_band _sifields._sigpoll.si_band |
| # define si_fd _sifields._sigpoll.si_fd |
| |
| @@ -142,13 +147,14 @@ enum |
| # define SI_ASYNCIO SI_ASYNCIO |
| SI_QUEUE, /* Sent by sigqueue. */ |
| # define SI_QUEUE SI_QUEUE |
| - SI_USER, /* Sent by kill, sigsend, raise. */ |
| + SI_USER, /* Sent by kill, sigsend. */ |
| # define SI_USER SI_USER |
| SI_KERNEL = 0x80 /* Send by kernel. */ |
| #define SI_KERNEL SI_KERNEL |
| }; |
| |
| |
| +# if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 |
| /* `si_code' values for SIGILL signal. */ |
| enum |
| { |
| @@ -207,10 +213,16 @@ enum |
| # define BUS_ADRALN BUS_ADRALN |
| BUS_ADRERR, /* Non-existant physical address. */ |
| # define BUS_ADRERR BUS_ADRERR |
| - BUS_OBJERR /* Object specific hardware error. */ |
| + BUS_OBJERR, /* Object specific hardware error. */ |
| # define BUS_OBJERR BUS_OBJERR |
| + BUS_MCEERR_AR, /* Hardware memory error: action required. */ |
| +# define BUS_MCEERR_AR BUS_MCEERR_AR |
| + BUS_MCEERR_AO /* Hardware memory error: action optional. */ |
| +# define BUS_MCEERR_AO BUS_MCEERR_AO |
| }; |
| +# endif |
| |
| +# ifdef __USE_XOPEN_EXTENDED |
| /* `si_code' values for SIGTRAP signal. */ |
| enum |
| { |
| @@ -219,7 +231,9 @@ enum |
| TRAP_TRACE /* Process trace trap. */ |
| # define TRAP_TRACE TRAP_TRACE |
| }; |
| +# endif |
| |
| +# if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 |
| /* `si_code' values for SIGCHLD signal. */ |
| enum |
| { |
| @@ -253,6 +267,7 @@ enum |
| POLL_HUP /* Device disconnected. */ |
| # define POLL_HUP POLL_HUP |
| }; |
| +# endif |
| |
| # undef __need_siginfo_t |
| #endif /* !have siginfo_t && (have _SIGNAL_H || need siginfo_t). */ |
| -- |
| 1.7.1 |
| |