changeset 1714:bd277be2c77b draft

Patch uClibc needs to build strace 4.9 on mips.
author Rob Landley <rob@landley.net>
date Thu, 25 Dec 2014 19:51:25 -0600
parents 8929051f09f4
children bffb25915831
files sources/patches/uClibc-mips-siginfo.patch
diffstat 1 files changed, 137 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sources/patches/uClibc-mips-siginfo.patch	Thu Dec 25 19:51:25 2014 -0600
@@ -0,0 +1,137 @@
+Backport commit a1b88fe87a9d:
+
+    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>
+
+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).  */